fastjson 复杂对象 反序列化
时间: 2023-10-04 16:05:50 浏览: 161
springboot 使用spring cache缓存 和 使用fastjson配置redis系列化
当涉及到复杂对象的反序列化时,Fastjson同样提供了相应的方法来处理。复杂对象通常包含嵌套的对象、集合或数组。下面是一个示例代码,演示了如何使用Fastjson进行复杂对象的反序列化:
```java
import com.alibaba.fastjson.JSON;
public class FastjsonDemo {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"pets\":[{\"name\":\"Tom\",\"age\":2},{\"name\":\"Jerry\",\"age\":1}]}";
// 反序列化
Person person = JSON.parseObject(jsonStr, Person.class);
System.out.println(person.getName()); // 输出:John
System.out.println(person.getAge()); // 输出:30
System.out.println(person.getCity()); // 输出:New York
for (Pet pet : person.getPets()) {
System.out.println(pet.getName()); // 输出:Tom,Jerry
System.out.println(pet.getAge()); // 输出:2,1
}
}
}
class Person {
private String name;
private int age;
private String city;
private List<Pet> pets;
// 省略构造器、getter和setter方法
}
class Pet {
private String name;
private int age;
// 省略构造器、getter和setter方法
}
```
在上面的示例中,我们将一个包含嵌套对象的JSON字符串反序列化为一个Person对象。Person类中包含了一个List类型的pets字段,pets字段是一个包含了多个Pet对象的集合。通过调用`JSON.parseObject()`方法,Fastjson会自动将JSON字符串中的嵌套对象转换为相应的Java对象。
需要注意的是,Fastjson在处理嵌套对象时需要保证嵌套对象的类结构与JSON字符串的结构相匹配,即字段名和类型要一致。否则,可以使用`@JSONField`注解来进行映射或者使用`TypeReference`类来处理复杂泛型类型。
阅读全文