我使用jackson-core-asl 1.8.5将java pojo转换为Json。现在我想创建具有不同属性名称的json。为此,我使用了jackson-annotations(@JsonProperty),但它没有任何效果。似乎可能存在一些版本问题。 我无法找到与jackson-core-asl 1.8.5兼容的正确版本的jackson-annotations。
我无法更改jackson-core-asl 1.8.5的版本。请为我的问题提出一些解决方案。
<properties>
<jackson-lib.ver>1.8.5</jackson-lib.ver>
</properties>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>${jackson-lib.ver}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson-lib.ver}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.1</version>
</dependency>
这是预期的输出:
"atts": {
"parent-id": "asd",
"country-id": "sdfsafs"
}
这是我的pojo:
public class Attr {
@JsonProperty("parent-id")
private String parentId;
@JsonProperty("country-id")
private String countryId;
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public String getCountryId() {
return countryId;
}
public void setCountryId(String countryId) {
this.countryId = countryId;
}
}
现在我得到了:
“atts”:{
“parentId”:“asd”,
“countryId”:“sdfsafs”
}
答案 0 :(得分:0)
是。您使用的是错误版本的注释 - Maven组ID必须与您的映射器相同; org.codehaus.jackson
。而不是杰克逊2.x使用的com.fasterxml.jackson.core
。