Jackson是一個(gè)強(qiáng)大的Java庫,可以解析和生成JSON數(shù)據(jù)。在處理JSON數(shù)據(jù)時(shí),我們經(jīng)常會遇到嵌套的對象和數(shù)組。本文將介紹如何使用Jackson解析JSON嵌套數(shù)據(jù)。
// JSON數(shù)據(jù)
{
"name": "張三",
"age": 20,
"address": {
"city": "北京",
"street": "天安門"
},
"hobbies": ["打籃球", "聽音樂", "看電影"]
}
上述JSON數(shù)據(jù)包含嵌套對象和數(shù)組。我們可以使用Jackson的ObjectMapper類來解析JSON數(shù)據(jù),并將其映射到Java對象中。
// 定義Java類
public class Person {
private String name;
private int age;
private Address address;
private List<String> hobbies;
// 省略getter和setter方法
}
public class Address {
private String city;
private String street;
// 省略getter和setter方法
}
// 解析JSON數(shù)據(jù)
ObjectMapper objectMapper = new ObjectMapper();
String jsonData = "{\"name\":\"張三\",\"age\":20,\"address\":{\"city\":\"北京\",\"street\":\"天安門\"},\"hobbies\":[\"打籃球\",\"聽音樂\",\"看電影\"]}";
Person person = objectMapper.readValue(jsonData, Person.class);
解析后,我們可以訪問嵌套的對象和數(shù)組。
// 訪問嵌套對象的屬性
String city = person.getAddress().getCity();
String street = person.getAddress().getStreet();
// 訪問數(shù)組元素
String hobby1 = person.getHobbies().get(0);
String hobby2 = person.getHobbies().get(1);
String hobby3 = person.getHobbies().get(2);
Jackson能夠輕松解析嵌套的JSON數(shù)據(jù)。當(dāng)處理更加復(fù)雜的JSON數(shù)據(jù)時(shí),我們可以通過定義更多的Java類來映射JSON數(shù)據(jù)的結(jié)構(gòu)。