FastJSON - 使用
🌻 FastJSON - 介绍
FastJson用于Json的序列化(serialization)和反序列化(deserialization)。
FastJson特点如下
- 简洁的API(parse、parseObj、parseArray、toJSONStr)
- 支持注解、PropertyFilter定制序列化
- 支持泛型(把str转成pojo而不是obj)
- 支持嵌套转换(类似User类中的Address字段):
🌼 FastJSON - 常用API
JSON - 负责序列化(serialization)和反序列化(deserlization)
- parse() - Json转Object或者List,不支持泛型
- parseObject() - Json转Obj,支持泛型
- parseArray() - Json转Array,支持泛型
- toJSONString() - Pojo转Json
🌹 FastJSON - 使用
🌸 FastJSON使用 - 导包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version> 1.2.70</version>
</dependency>
🌺 FastJSON使用
/*
* 💚 JSON对象
* - toJSONString() 对象(obj、arr) -> str
* - parse()/parseObj()/parseArr() str->对象(arr/obj)
* - parse() 不支持泛型
* */
Employee emp = new Employee(1, "yuki", "男", 50, "Java开发",
2333.33, new Date(), new Address("bj", "xx大厦-203"));
ArrayList<Employee> emps = new ArrayList<>();
emps.add(new Employee(1, "yuki", "男", 11, "Java开发1",
1333.33, new Date(), new Address("bj", "xx大厦-111")));
emps.add(new Employee(2, "yuki2", "男", 22, "Java开发2",
2333.33, new Date(), new Address("bj2", "xx大厦-222")));
// 1. obj -> json
String str = JSON.toJSONString(emp);
System.out.println(str);
System.out.println("---------------------");
// 2. obj -> json
JSONObject emp1 = JSON.parseObject(str);
System.out.println(emp1);
System.out.println("---------------------");
// 3. List -> json
String strArr = JSON.toJSONString(emps);
System.out.println(strArr);
System.out.println("---------------------");
// 4. json -> List
List<Employee> empList = JSON.parseArray(strArr,Employee.class);
System.out.println(empList);
System.out.println("---------------------");
💐 FastJSON使用 - @JSONField注解
@JSONFiled 属性如下
serialize- 是否忽略field(序列化和反序列化)id- json和field对应关系formatter- 日期格式化ordinal- 序列化顺序(默认0,值越小越先序列化)
/**
💚 @JSONFiled 有如下属性
serialize - true表示需要转换,false表示跳过该字段(序列化和反序列化)
id - json字段和pojo属性对应关系
ordinal - 序列化顺序(默认0,值越小越先序列化)
formatter - 日期格式化
*/
public class Teacher {
// id
@JSONField(ordinal = 2)
private Integer id;
// name gender age
@JSONField(ordinal = 1,serialize = false)
private String name;
private String gender;
private Integer age;
// job salary entryDate
@JSONField(ordinal = 5,name = "jobname")
private String job;
private Double salary;
@JSONField(format = "yyyy-MM-dd")
private Date entryDate;
// 地址
private com.yuki.fastjson.entity.Address Address;
}

浙公网安备 33010602011771号