📜  org.json-JSONObject(1)

📅  最后修改于: 2023-12-03 15:18:10.431000             🧑  作者: Mango

org.json-JSONObject

org.json-JSONObject 是 Java 编程语言中的一个类,它可以将 JSON(JavaScript Object Notation)格式的数据解析出来并转换成 Java 对象,也可以将 Java 对象转换成 JSON 格式的数据。这个类是由 Douglas Crockford 的 JSON.org 组织提供的。

特点
  • JSONObject 对象表示 JSON 格式的数据,它可以包含多个键值对。
  • JSONObject 对象的键必须是一个 String 对象,值可以是除了函数外的任何类型的对象。
  • JSONObject 对象可以嵌套,即在一个 JSONObject 对象中可以包含另一个 JSONObject 对象。
  • JSONObject 对象是线程安全的,可以在多个线程中使用。
使用
创建 JSONObject

创建一个空的 JSONObject 对象:

JSONObject obj = new JSONObject();

创建一个包含键值对的 JSONObject 对象:

JSONObject obj = new JSONObject();
obj.put("name", "张三");
obj.put("age", 18);
解析 JSON 格式数据

将一个字符串解析成 JSONObject 对象:

String jsonString = "{\"name\":\"张三\",\"age\":18}";
JSONObject obj = new JSONObject(jsonString);

将一个文件中的 JSON 格式数据解析成 JSONObject 对象:

File file = new File("data.json");
String jsonString = FileUtils.readFileToString(file, "UTF-8");
JSONObject obj = new JSONObject(jsonString);
访问和修改 JSON 数据

访问一个字段的值:

JSONObject obj = new JSONObject();
obj.put("name", "张三");
obj.put("age", 18);

String name = obj.getString("name");
int age = obj.getInt("age");

修改一个字段的值:

JSONObject obj = new JSONObject();
obj.put("name", "张三");
obj.put("age", 18);

obj.put("age", 19);
JSONObject 对象转换成字符串

JSONObject 对象转换成字符串:

JSONObject obj = new JSONObject();
obj.put("name", "张三");
obj.put("age", 18);

String jsonString = obj.toString();
将 Java 对象转换成 JSONObject 对象

将一个 Java 对象转换成 JSONObject 对象:

User user = new User("张三", 18);
JSONObject obj = new JSONObject(user);
性能

org.json 比起 Gson 和 Jackson 这些更成熟的 JSON 序列化库而言,在性能和功能上略显不足,但在某些情况下使用它更加合适。

对于一些简单的 JSON 数据,使用 org.json 库可以非常快速地解析和处理,而不需要把整个 JSON 手动映射到一个 Java 对象或者定义一个相应的 Java 类。

因此,如果您正在处理一些简单和小的 JSON 数据,使用 JSONObject 是一个很好的选择。如果您需要处理非常复杂的 JSON 结构或者大量的 JSON 数据,那么最好考虑使用其他库。