根据一些测试,我发现与属性名称不同的任何一个都会生效:
例如。考虑对您的情况进行一些修改:
@JsonProperty("fileName")private String fileName;@JsonProperty("fileName")public String getFileName(){ return fileName;}@JsonProperty("fileName1")public void setFileName(String fileName){ this.fileName = fileName;}
这两个
fileName字段,方法
getFileName,有正确的属性名称
fileName,并
setFileName具有不同的一个
fileName1,在这种情况下,杰克逊将寻找一个
fileName1在反序列化的点JSON属性,会创建一个名为属性
fileName1的序列化的地步。
现在,在您的案例中,三个@JsonProperty都与默认属性名有所不同
fileName,它只会选择其中一个作为attribute(
FILENAME),并且三个属性中的任何一个都不相同,这将引发异常:
java.lang.IllegalStateException: Conflicting property name definitions
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)