我正在使用带有jackson的resttemplate来对marshall / unmarshall java / json对象进行操作。 什么是序列化/反序列化的最佳策略
可能包含键值对的Map,以便键是字符串,值可以 是各种类型,例如自定义对象的ArrayList
我在这个网站上做过一些研究,发现使用@JsonAnyGetter @JsonAnySetter 可以在这种情况下使用,但不确定如何在上下文中反序列化 resttemplate getforobject方法。是否必须编写自定义httpmessageconverter 完成反序列化? 提前谢谢。
答案 0 :(得分:0)
我们假设您有这样的回复:
{ key1: "something", key2: 3}
您希望拥有包含这些字段的DTO:
class CustomResponse {
private String key1;
private long key2;
}
确保为上述内容添加getter和setter。
现在提出您的要求:
restTemplate.postForObject(url, requestObject, CustomResponse.class);
请求对象可以是上面的DTO,也可以使用Arrays和Maps来构造requestObject。
您应该将此注释添加到您的回复DTO中。这可确保如果响应中的字段未在DTO中映射,则会忽略它们。
@JsonIgnoreProperties(ignoreUnknown = true)