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方法获取到嵌套的对象,并从中获取相应的数据。