Fastjson是阿里巴巴的团队开发的一款Java语言实现的JSON解析器和生成器,它具有简单易用、高性能、高可用性等优点,适用于Java开发中的数据解析和生成。Fastjson的主要特点包括:
使用Fastjson将Java对象序列化为JSON格式的字符串非常简单。只需定义一个Java类,并使用Fastjson的toJSON
方法将其序列化为JSON格式字符串即可,例如:
public class Person {
private String name;
private int age;
// 省略getter和setter方法
public static void main(String[] args) {
Person person = new Person();
person.setName("John");
person.setAge(30);
String json = JSON.toJSONString(person); // 序列化为JSON字符串
System.out.println(json); // 输出:{"name":"John","age":30}
}
}
使用Fastjson将JSON格式的字符串反序列化为Java对象也非常简单。只需定义一个Java类,并使用Fastjson的parseObject
方法将其反序列化为Java对象即可,例如:
public class Person {
private String name;
private int age;
// 省略getter和setter方法
public static void main(String[] args) {
String json = "{\"name\":\"John\",\"age\":30}"; // JSON字符串
Person person = JSON.parseObject(json, Person.class); // 反序列化为Person对象
System.out.println(person.getName()); // 输出:John
System.out.println(person.getAge()); // 输出:30
}
}
Fastjson提供了一些自定义序列化器,可以定制序列化过程,例如:将某个属性不序列化、将某个属性序列化为特定的格式等。通过实现com.alibaba.fastjson.serializer.ObjectSerializer
接口并实现serialize
方法即可自定义一个序列化器。例如,下面的代码实现了一个自定义序列化器,将Person
对象的id
属性不序列化:
public class CustomSerializer implements ObjectSerializer {
@Override
public void write(JSONWriter writer, Object obj) {
if (obj instanceof Person) {
Person person = (Person) obj;
writer.writeObject(new CustomPerson(person)); // 自定义Person对象,不包含id属性
} else {
writer.writeObject(obj); // 其他对象直接序列化
}
}
}