杰克逊数据绑定

Jackson Databinding

我们正在使用 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,如下所示: 例如

@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"
        }

问题是现在列表不再是字符串列表,而是变成了一个列表,其中包含包含国家/地区代码的对象。 有没有一种简单的方法仍然可以将字符串值作为列表获取?按照我一直对注释所做的方式来做吗?

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