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;
}

🥒 参考链接

FastJSON和它的特点

常见问题

JSONField

posted @ 2021-03-01 20:57  全力一拼  阅读(149)  评论(0)    收藏  举报