接上篇:https://developer.aliyun.com/article/1227488?spm=a2c6h.13148508.setting.28.48e04f0eaBVGWH
六、 JSON序列化技巧
这里以Fastjson为例,介绍一些JSON序列化技巧。
1. 序列化对象
利用JSON.toJSONString方法序列化对象:
2. 序列化数组
利用JSON.toJSONString方法序列化数组:
3. 序列化集合
利用JSON.toJSONString方法序列化集合(继承至Collection,比如List、Set等集合):
4. 序列化映射
利用JSON.toJSONString方法序列化映射:
其中,为了保证每次序列化的映射字符串一致,需要指定序列化参数MapSortField进行排序。
5. 序列化模板对象
利用JSON.toJSONString方法序列化模板对象:
6. 序列化指定属性字段
利用JSON.toJSONString方法序列化指定属性字段,主要通过设置属性预过滤器(SimplePropertyPreFilter)的包含属性字段列表(includes)实现。主要应用于只想验证某些字段的情况,比如只验证跟测试用例有关的字段。
指定所有类的属性字段:
利用JSON.toJSONString方法序列化指定所有类的属性字段:
指定单个类的属性字段:
利用JSON.toJSONString方法序列化指定单个类的属性字段:
指定多个类的属性字段:
利用JSON.toJSONString方法序列化指定多个类的属性字段:
7. 序列化字段排除属性字段
利用JSON.toJSONString方法序列化过滤属性字段,主要通过设置属性预过滤器(SimplePropertyPreFilter)的排除属性字段列表(excludes)实现。主要应用于不想验证某些字段的情况,比如排除无法验证的随机属性字段。
排除所有类的属性字段:
利用JSON.toJSONString方法序列化排除所有类的属性字段:
排除单个类的属性字段:
利用JSON.toJSONString方法序列化排除单个类的属性字段:
排除多个类的属性字段:
利用JSON.toJSONString方法序列化排除多个类的属性字段:
8. 自定义序列化
对应一些类对象,需要序列化为特殊格式文本,就必须自定义序列化器。比如:Geometry序列化文本,通常采用WKT(Well-known text)表示,便于用户快速阅读理解。
全局配置序列化器:
通过JSON序列化全局配置指定类序列化器:
注意:
这种方式不支持类继承,必须指定到具体类。比如要序列化Point对象,就必须配置Point类的序列化器。
特定配置序列化器:
通过JSON序列化特定配置指定类序列化器:
注意:
这种方式不支持类继承,必须指定到具体类。比如要序列化Point对象,就必须配置Point类的序列化器。
注解配置序列化器:
通过JSON序列化注解配置指定类序列化器:
其中:GeometrySerializer为自定义类,这里就不贴出具体实现了。
接下篇:https://developer.aliyun.com/article/1227482?groupCode=java