使用Jackson解析属性首字母为大写的JSON串问题解决

ぐ巨炮叔叔 提交于 2021-01-21 05:37:39

面对不遵守驼峰命名规则的接口咋办?当然首先要吐槽一下,不过接口是别人定的,虽然看着不爽但还是得去适配,比如cardNumber,他返回的叫{CARDNUMBER:''}。 这样导致使用Jackson解析出来的对象的属性均为空,经过跟踪源码发现,是由于其根据getters方法解析的属性,属性字母都变为了小写,这就导致无法解析了出现了jackson Unrecognized field 的问题。

通过对API的研究可以通过@JsonProperty以及@JsonAutoDetect来实现。

具体如下看代码

@JsonAutoDetect(JsonMethod.FIELD)
public class ApiParameter implements Serializable {

	private static final long serialVersionUID = 1L;

	@JsonProperty("NAME")
	private String name;

	@JsonProperty("CARDNUMBER")
	private String cardNumber;

}

@JsonProperty("CARDNUMBER")顾名思义,就是显示指定字段的别名,不管是输入还是输出都是这个名字。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!