当先锋百科网

首页 1 2 3 4 5 6 7

Java中处理JSON数据是很常见的需求。有时候我们需要遍历读取JSON数据中的嵌套对象和数组。下面讲一下如何通过Java来处理这样的情况。

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\",\"age\":30,\"cars\":[{\"name\":\"Ford\",\"models\":[\"Fiesta\",\"Focus\",\"Mustang\"]},{\"name\":\"BMW\",\"models\":[\"320\",\"X3\",\"X5\"]},{\"name\":\"Fiat\",\"models\":[\"500\",\"Panda\"]}]}";
try {
JSONObject jsonObject = new JSONObject(jsonString);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
JSONArray cars = jsonObject.getJSONArray("cars");
System.out.println("Name: " + name + ", Age: " + age);
for(int i = 0; i< cars.length(); i++) {
JSONObject car = cars.getJSONObject(i);
String carName = car.getString("name");
JSONArray models = car.getJSONArray("models");
System.out.println("Car Name: " + carName);
for(int j = 0; j< models.length(); j++) {
String model = models.getString(j);
System.out.println("Model: " + model);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}

以上代码中,我们首先将JSON字符串转换为JSONObject对象,并通过get方法获取其中的数据。其中,getJSONArray方法获取到的是一个JSONArray对象,我们通过遍历数组中的元素,可以拿到其中的每一个JSONObject对象,并从中获取相应的数据。同时,我们也可以通过getJSONObject方法获取到嵌套的对象,并从中获取相应的数据。