杰克逊数据绑定

时间:2016-07-06 09:59:14

标签: java json jackson fasterxml

我们正在使用API​​在我们的服务之间进行通信。要绑定数据,我使用以下依赖项:

        <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.6.5</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml</groupId>
        <artifactId>jackson-xml-databind</artifactId>
        <version>0.6.2</version>
    </dependency>

API提供给我的列表的旧方式:

country: [
   "NL",
   "BE",
   "ES",
   "GB",         
],

通常情况下,我将此绑定到我的pojos,如下所示: e.g。

@JsonProperty("country")
private List<String> countries;

没有造成任何问题。

现在我们的API正在更新,数据以这种方式显示,例如:

registeredIn: {
     datatype: "SS",
     item: {
        NL: "NL",
        BE: "BE",
        ES: "ES",
        GB: "GB"
        }
    },

我只需要对象的这部分信息:

   item: {
        NL: "NL",
        BE: "BE",
        ES: "ES",
        GB: "GB"
        }

问题是现在列表不再是字符串列表了,但它已成为包含其中包含国家/地区代码的对象的列表。 还有一种简单的方法可以将字符串值作为列表获取吗?按照我一直用注释的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

尝试使用Map<String, String>代替List<String>。使用与Map的键相同的值似乎有点多余,但它应该按照您希望的方式序列化。