Java如何使用fastjson序列化和反序列化
Fastjson是阿里巴巴开源的一个高性能的JSON处理框架,它可以实现Java对象与JSON字符串之间的相互转换,支持复杂对象嵌套和泛型的序列化与反序列化。Fastjson具有以下特点:
1. 快速:Fastjson相对于其他JSON处理框架具有更快的JSON编解码速度。
2. 低内存消耗:Fastjson采用了直接内存图模型,减少了字符串的复制。
3. 易用性:Fastjson提供了简单易用的API,可以灵活的进行配置和使用。
4. 兼容性:Fastjson支持自动解析JavaBean、数组、Collection、字符串、数字等类型。
Fastjson的常用方法包括序列化和反序列化,下面是介绍这些方法的示例代码:
1. JSON序列化示例:
import com.alibaba.fastjson.JSON;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static void main(String[] args) {
Person person = new Person("Alice", 20);
// 将Java对象序列化为JSON字符串
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString);
}
}
输出结果:
{"age":20,"name":"Alice"}
2. JSON反序列化示例:
import com.alibaba.fastjson.JSON;
public class Person {
private String name;
private int age;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
String jsonString = "{\"age\":20,\"name\":\"Alice\"}";
// 将JSON字符串反序列化为Java对象
Person person = JSON.parseObject(jsonString, Person.class);
System.out.println(person.getName());
System.out.println(person.getAge());
}
}
输出结果:
Alice
20
如果使用Maven构建项目,可以在项目的pom.xml中添加以下依赖项:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>