0

我正在使用带有 jackson 的 resttemplate 来编组/解组 java/json 对象。序列化/反序列化的最佳策略是什么

一个可能包含键值对的 Map,例如键是字符串,值可以是各种类型,例如自定义对象的 ArrayList

我在这个网站上做了一些研究,发现在这种情况下可以使用@JsonAnyGetter @JsonAnySetter,但不确定如何在resttemplate getforobject 方法的上下文中反序列化。是否必须编写自定义 httpmessageconverter 来完成反序列化?提前致谢。

4

1 回答 1

0

我们假设你有这样的回应:

{ key1: "something", key2: 3}

你会想要一个包含这些字段的 DTO:

class CustomResponse {
    private String key1;
    private long key2;
}

确保为上述内容添加 getter 和 setter。

现在提出您的要求:

restTemplate.postForObject(url, requestObject, CustomResponse.class);

请求对象可以是像上面这样的 DTO,也可以只使用数组和映射来构造 requestObject。

您应该将此注释添加到您的响应 DTO。这可确保如果响应中的某些字段未映射到您的 DTO 中,它们将被忽略。

@JsonIgnoreProperties(ignoreUnknown = true)
于 2012-12-21T11:19:10.540 回答