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优先级更高