杰克逊数据绑定
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 的键相同的值似乎有点多余,但它应该按您希望的方式序列化。
我们正在使用 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 的键相同的值似乎有点多余,但它应该按您希望的方式序列化。