Json串和实体类不一致问题
2021-08-06 17:56
标签: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