兼容版本的jackson-annotations与jackson-core-asl 1.8.5集成

时间:2015-08-10 13:35:08

标签: jackson

我使用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”
    }

1 个答案:

答案 0 :(得分:0)

是。您使用的是错误版本的注释 - Maven组ID必须与您的映射器相同; org.codehaus.jackson。而不是杰克逊2.x使用的com.fasterxml.jackson.core