import org.json.JSONArray;
import org.json.JSONObject;
public class JsonParser {
public static void main(String[] args) {
// 示例多层嵌套JSON字符串
String jsonString = "{ \"person\": { \"name\": \"John\", \"age\": 30, \"address\": { \"city\": \"New York\", \"zipcode\": \"10001\" }, \"phones\": [ { \"type\": \"home\", \"number\": \"123-456-7890\" }, { \"type\": \"work\", \"number\": \"987-654-3210\" } ] } }";
// 将JSON字符串解析为JSONObject
JSONObject jsonObject = new JSONObject(jsonString);
// 获取第一层的 "person" 对象
JSONObject person = jsonObject.getJSONObject("person");
// 获取 "person" 对象中的简单字段
String name = person.getString("name");
int age = person.getInt("age");
// 获取嵌套的 "address" 对象
JSONObject address = person.getJSONObject("address");
String city = address.getString("city");
String zipcode = address.getString("zipcode");
// 获取嵌套的 "phones" 数组
JSONArray phones = person.getJSONArray("phones");
// 遍历 "phones" 数组并解析每个对象
for (int i = 0; i < phones.length(); i++) {
JSONObject phone = phones.getJSONObject(i);
String type = phone.getString("type");
String number = phone.getString("number");
System.out.println("Phone Type: " + type + ", Number: " + number);
}
// 打印解析结果
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
System.out.println("Zipcode: " + zipcode);
}
}
导入库:使用 org.json 库来处理 JSON 数据。你可以通过 Maven 或 Gradle 添加依赖,或者直接下载 JAR 文件。
JSON 字符串:定义了一个多层嵌套的 JSON 字符串 jsonString,包含一个 person 对象,其中又嵌套了 address 对象和 phones 数组。
解析 JSON:
new JSONObject(jsonString) 将 JSON 字符串解析为 JSONObject。getJSONObject 方法获取嵌套的对象(如 person 和 address)。getString 和 getInt 方法获取简单字段(如 name 和 age)。getJSONArray 方法获取数组(如 phones),并通过遍历数组解析每个元素。输出结果:将解析后的数据打印到控制台。
这段代码展示了如何解析多层嵌套的 JSON 数据,并提取其中的值进行处理。
下一篇:java解压rar文件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站