Json串和实体类不一致问题
时间:2021-06-17 17:03:14
收藏:0
阅读:0
一、fastjson:
当字段少于实体类字段:正常通过,没有的字段会被赋予默认值
当字段多于实体类字段:正常通过,没有的字段不会被反序列化到对象中
二、jackson:
段少于实体类字段:正常通过,没有的字段会被赋予默认值
当字段多于实体类字段 此时会报错,这个错翻译过来就是,一个无法识别的field。
由此可见,在默认情况下,jackson是不支持json串的字段多于实体类字段的,但是,jackson也提供了解决方案,我们在实体类上,添加注解@JsonIgnoreProperties,
这个注解有一个ignoreUnknown属性,默认值为false,我们可以将它改为true,这样jackson在反序列化的时候,就会忽略掉不存在的属性了。(@JsonIgnoreProperties(ignoreUnknown = true))
三、项目开发过程中,有时候可能要对接第三方平台,可能就会存在字段名不一样的问题,而双方的字段名不一致, 而代码开发已经有一段时间勒,如果就因为字段名不一样的问题,双方改成属性名一致,这样改动量太大,也不保险,下面我来接手一下,针对这种场景,如果解决。
假设: 系统通过http对接,传的是json。有一个参数"名称"
第三方平台:name
开发环境:userName
直接通过实体类映射,不用说肯定有问题
解决办法:
@JsonProperty("name")
private String userName;
评论(0)