fastjson-使用

fastjson-使用

起男 1,509 2021-08-08

fastjson-使用

序列化

是指将java对象转成json个数字符串的过程。javaBean对象、list集合对象、map集合应用最为广泛

序列化api

JSON.toJSONString

反序列化

把json格式的字符串转换为java对象的过程

反序列化java对象

JSON.parseObject

  • 参数1:json字符串
  • 参数2:要转成的java对象

反序列化list集合

JSON.parseArray

  • 参数1:json字符串
  • 参数2:集合的泛型类型

反序列化map集合

JSON.parseObject

  • 参数1:json字符串
  • 参数2:new TypeReference<Map<String, value泛型>>() {}

由于TypeReference的构造是protected的所以要使用匿名内部类或子类实现

SerializerFeature枚举

序列化时可以自定义特殊需求,枚举常量是做序列化时的个性需求

JSON.toJSONString

  • 参数1:要序列化的对象
  • 参数2:SerializerFeature枚举(可变参数)

常用常量

常量作用
WriteMapNullValue序列化null值的字段,默认null不显示
WriteNullStringAsEmpty序列化为null的字符串字段,值序列化为""
WriteNullNumberAsZero序列化为null的数值字段,值序列化为0
WriteNullBooleanAsFalse序列化为null的布尔字段,值序列化为false
WriteDateUseDateFormat格式化日期格式,默认展示毫秒值
PrettyFormat格式化,增加了换行空格等修饰

注解

@JSONField

该注解作用于方法上,字段上和参数上。可以在序列化和反序列化时进行功能定制

属性

属性作用
name定序列化后的名字
ordinal序列化后的顺序,值越小越靠前
format序列化后的格式
serialize是否序列化该字段
deserialize是否反序列化该字段
serializeFeatures序列化时的特性定义

@JSONType

该注解作用与类上,对该类的字段进行序列化和反序列化的功能定制

属性

属性作用
includes要被序列化的字段
ignores不被序列化的字段
orders序列化后的顺序
serialzeFeatures序列化时的特性定义

同时使用@JSONType和@JSONField,@JSONType优先级更高