面对不遵守驼峰命名规则的接口咋办?当然首先要吐槽一下,不过接口是别人定的,虽然看着不爽但还是得去适配,比如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")
顾名思义,就是显示指定字段的别名,不管是输入还是输出都是这个名字。
来源:oschina
链接:https://my.oschina.net/u/2293736/blog/664372