《Java工程师必读手册》——Java单元测试系列——Java单元测试技巧之JSON序列化(4)

简介: 《Java工程师必读手册》——Java单元测试系列——Java单元测试技巧之JSON序列化(4)

接上篇:https://developer.aliyun.com/article/1227488?spm=a2c6h.13148508.setting.28.48e04f0eaBVGWH


六、 JSON序列化技巧

 

这里以Fastjson为例,介绍一些JSON序列化技巧。

 

1. 序列化对象

 

利用JSON.toJSONString方法序列化对象:

 

image.png 

 

2. 序列化数组

 

利用JSON.toJSONString方法序列化数组:

 

image.png 

 

3. 序列化集合

 

利用JSON.toJSONString方法序列化集合(继承至Collection,比如List、Set等集合):

 

image.png 

 

4. 序列化映射

 

利用JSON.toJSONString方法序列化映射:

 

image.png 

 

其中,为了保证每次序列化的映射字符串一致,需要指定序列化参数MapSortField进行排序。

 

5. 序列化模板对象

 

利用JSON.toJSONString方法序列化模板对象:

 

image.png 

 

6. 序列化指定属性字段

 

利用JSON.toJSONString方法序列化指定属性字段,主要通过设置属性预过滤器(SimplePropertyPreFilter)的包含属性字段列表(includes)实现。主要应用于只想验证某些字段的情况,比如只验证跟测试用例有关的字段。

 

指定所有类的属性字段

 

利用JSON.toJSONString方法序列化指定所有类的属性字段:

 

image.png 

 

指定单个类的属性字段

 

利用JSON.toJSONString方法序列化指定单个类的属性字段:

 

image.png 

 

指定多个类的属性字段

 

利用JSON.toJSONString方法序列化指定多个类的属性字段:

 

image.png 

 

7. 序列化字段排除属性字段

 

利用JSON.toJSONString方法序列化过滤属性字段,主要通过设置属性预过滤器(SimplePropertyPreFilter)的排除属性字段列表(excludes)实现。主要应用于不想验证某些字段的情况,比如排除无法验证的随机属性字段。

 

排除所有类的属性字段

 

利用JSON.toJSONString方法序列化排除所有类的属性字段:

 

image.png 

 

排除单个类的属性字段

 

利用JSON.toJSONString方法序列化排除单个类的属性字段:

 

image.png 

 

排除多个类的属性字段

 

利用JSON.toJSONString方法序列化排除多个类的属性字段:

 

image.png 

 

8. 自定义序列化

 

对应一些类对象,需要序列化为特殊格式文本,就必须自定义序列化器。比如:Geometry序列化文本,通常采用WKTWell-known text表示,便于用户快速阅读理解。

 

全局配置序列化器

 

通过JSON序列化全局配置指定类序列化器:

 

image.png 

 

注意

这种方式不支持类继承,必须指定到具体类。比如要序列化Point对象,就必须配置Point类的序列化器。

 

特定配置序列化器

 

通过JSON序列化特定配置指定类序列化器:

 

image.png 

 

注意

这种方式不支持类继承,必须指定到具体类。比如要序列化Point对象,就必须配置Point类的序列化器。

 

注解配置序列化器

 

通过JSON序列化注解配置指定类序列化器:

 

image.png 

 

其中:GeometrySerializer为自定义类,这里就不贴出具体实现了。


  接下篇:https://developer.aliyun.com/article/1227482?groupCode=java

 

相关文章
|
2月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
41 1
|
2月前
|
架构师 前端开发 Java
Java开发工程师的职业规划应该是什么样的?
Java开发工程师的职业规划涵盖多个阶段,包括初入行业(0-1年)、技能提升(1-3年)、技术专家(3-5年)及管理或专家路线选择(5年以上)。各阶段设定了明确的技能要求与职业目标,从掌握Java基础、常用框架到深入研究高级技术、微服务架构乃至担任管理职务或成为技术专家。通过持续学习与实践,结合个人兴趣,Java工程师可在技术或管理领域找到合适的发展方向,最终实现职业成功。
339 83
|
16天前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
25天前
|
消息中间件 存储 Java
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
32 3
|
1月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
47 1
|
2月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
63 18
|
2月前
|
JSON Java fastjson
java小工具util系列3:JSON和实体类转换工具
java小工具util系列3:JSON和实体类转换工具
23 2
|
2月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
122 2
|
2月前
|
人工智能 前端开发 Java
Java开发工程师转哪个行业比较好?
Java开发工程师转哪个行业比较好?
224 2
|
2月前
|
JSON Go 数据格式
Golang语言结构体链式编程与JSON序列化
这篇文章是关于Go语言中结构体链式编程与JSON序列化的教程,详细介绍了JSON格式的基本概念、结构体的序列化与反序列化、结构体标签的使用以及如何实现链式编程。
35 4