📅  最后修改于: 2023-12-03 15:18:10.453000             🧑  作者: Mango
在 Java 开发过程中,我们经常需要将从外部数据源获取到的 JSON 字符串转换为 Java 对象进行处理,或将 Java 对象转换为 JSON 字符串进行传递。 org.json.JSONObject
提供了将 JSON 字符串转换为 Java 对象的方法。
首先,我们需要将 JSON 字符串转换为 org.json.JSONObject
对象:
String jsonString = "{ \"name\":\"John\", \"age\":30 }";
JSONObject jsonObject = new JSONObject(jsonString);
这里的 jsonString
是一个代表 JSON 字符串的 Java 字符串。在创建 JSONObject
对象时,我们将 jsonString
作为参数传递给构造函数。
在得到 JSONObject
对象之后,我们可以通过它的 get
方法获取其中的属性值,并将其转换为 Java 对象:
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
上述代码中,getString
方法将 "name"
属性的值转换为 Java 字符串并返回;getInt
方法将 "age"
属性的值转换为 Java 整数并返回。
如果 JSON 字符串中存在嵌套的 JSON 对象,我们可以使用 getJSONObject
方法获取其对应的 JSONObject
对象,并继续访问其属性值:
String jsonString = "{ \"name\":\"John\", \"age\":30, \"address\":{\"city\":\"New York\", \"state\":\"NY\"} }";
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject address = jsonObject.getJSONObject("address");
String city = address.getString("city");
String state = address.getString("state");
在上述代码中,我们将 JSON 字符串中的 address
属性转换为 JSONObject
对象,并访问其中的 city
和 state
属性值。
在使用 org.json.JSONObject
时,需要注意以下问题:
"
包围,否则无法正确解析。get
方法将返回 null
,而调用 opt
方法则会返回一个默认值。例如,jsonObject.getInt("nonexistent")
将返回 null
,而 jsonObject.optInt("nonexistent")
将返回 0
。在 Java 开发过程中,将 JSON 字符串转换为 Java 对象是一个常见的需求。通过使用 org.json.JSONObject
,我们可以快速将 JSON 字符串转换为 Java 对象,并对其进行处理。