json之jackson序列化反序列化探究(二)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json之jackson序列化反序列化探究(二)相关的知识,希望对你有一定的参考价值。

参考技术A

上一篇(json之jackson的介绍以及基本使用ObjectMapper): https://www.jianshu.com/p/6d6911fa999e

例如:

测试

例如:我们去除测试用户部分字段的getter方法

测试

由测试可见字段 id name ,并没有被序列化
可知ObjectMapper并不真正地检查getter对应的属性是否存在于User对象上,而是通过getter的命名规约进行调用

例如:我们构造一个不存的属性 temp , 只有getter方法

测试

给java对象不存在的属性添加一个setter方法

反序列化成功

综上,在默认情况下(即不对ObjectMapper做任何额外配置,也不对Java对象加任何Annotation),ObjectMapper依赖于Java对象的默认的无参构造函数进行反序列化,并且严格地通过getter和setter的命名规约进行序列化和反序列化

json之jackson的常用全局配置以及自定义序列化规则

参考技术A 不配置
使用Java8的数据类型(比如:LocalDateTime)会报以下异常

配置

3.结果

以上是关于json之jackson序列化反序列化探究(二)的主要内容,如果未能解决你的问题,请参考以下文章

Java反序列化之Jackson-databind

如何使用 Jackson 反序列化来自 json 对象的对象数组

Java应用使用Jackson库进行JSON序列化和反序列化

使用 Jackson 反序列化 JSON - 为啥 JsonMappingException“没有合适的构造函数”?

使用 Jackson 反序列化:获取 Json 对象设置的字段列表

使用 Jackson 反序列化 JSON 的问题