码迷,mamicode.com
首页 > Web开发 > 详细

Json串和实体类不一致问题

时间:2021-06-17 17:03:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:pes   bsp   一个   esc   字段名   property   翻译   场景   三方   

一、fastjson:

当字段少于实体类字段:正常通过,没有的字段会被赋予默认值

当字段多于实体类字段:正常通过,没有的字段不会被反序列化到对象中

二、jackson:

段少于实体类字段:正常通过,没有的字段会被赋予默认值

当字段多于实体类字段   此时会报错,这个错翻译过来就是,一个无法识别的field。

由此可见,在默认情况下,jackson是不支持json串的字段多于实体类字段的,但是,jackson也提供了解决方案,我们在实体类上,添加注解@JsonIgnoreProperties,

这个注解有一个ignoreUnknown属性,默认值为false,我们可以将它改为true,这样jackson在反序列化的时候,就会忽略掉不存在的属性了。(@JsonIgnoreProperties(ignoreUnknown = true))

 

三、项目开发过程中,有时候可能要对接第三方平台,可能就会存在字段名不一样的问题,而双方的字段名不一致, 而代码开发已经有一段时间勒,如果就因为字段名不一样的问题,双方改成属性名一致,这样改动量太大,也不保险,下面我来接手一下,针对这种场景,如果解决。

假设: 系统通过http对接,传的是json。有一个参数"名称"

第三方平台:name

开发环境:userName

直接通过实体类映射,不用说肯定有问题

解决办法:

@JsonProperty("name")
private String userName;

 

Json串和实体类不一致问题

标签:pes   bsp   一个   esc   字段名   property   翻译   场景   三方   

原文地址:https://www.cnblogs.com/chengshentao/p/14892288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!