java获取json对象中嵌套了一个数组的值,数组里面有很多对象,又嵌套了6个数组
时间: 2024-04-11 15:26:57 浏览: 64
使用Java进行Json数据的解析(对象数组的相互嵌套)
5星 · 资源好评率100%
如果JSON对象中包含一个嵌套了多个对象和数组的结构,你可以使用Gson库进行处理。以下是一个示例代码,演示如何获取JSON对象中嵌套了一个数组,并遍历其中的对象和数组:
```java
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class JsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"data\":{\"hobbies\":[\"reading\",\"traveling\",\"swimming\"],\"friends\":[{\"name\":\"Alice\",\"age\":28},{\"name\":\"Bob\",\"age\":32}]}}";
JsonObject jsonObject = new JsonParser().parse(jsonString).getAsJsonObject();
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
String city = jsonObject.get("city").getAsString();
JsonObject dataObject = jsonObject.get("data").getAsJsonObject();
JsonArray hobbiesArray = dataObject.get("hobbies").getAsJsonArray();
JsonArray friendsArray = dataObject.get("friends").getAsJsonArray();
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
System.out.println("Hobbies:");
for (JsonElement hobbyElement : hobbiesArray) {
String hobby = hobbyElement.getAsString();
System.out.println("- " + hobby);
}
System.out.println("Friends:");
for (JsonElement friendElement : friendsArray) {
JsonObject friendObject = friendElement.getAsJsonObject();
String friendName = friendObject.get("name").getAsString();
int friendAge = friendObject.get("age").getAsInt();
System.out.println("- Name: " + friendName + ", Age: " + friendAge);
}
}
}
```
在这个示例中,我们的JSON字符串中嵌套了一个名为"data"的对象,在"data"对象中又嵌套了两个数组:"hobbies"和"friends"。我们首先按照前面的方式解析基本属性(如"name"、"age"、"city"),然后使用getAsJsonObject()方法获取"data"属性对应的JsonObject对象。
接下来,我们使用getAsJsonArray()方法获取"hobbies"和"friends"属性对应的JsonArray对象。然后,我们分别遍历"hobbies"和"friends"数组,并根据需要获取数组中的值或嵌套对象的值,并进行打印。
请根据你的JSON结构和需求进行相应的调整。
阅读全文