【问题标题】:rest template serialize/deserialize Map objects with variosu key , value pairsrest 模板序列化/反序列化 Map 对象与 variosu 键,值对
【发布时间】:2012-04-16 07:56:19
【问题描述】:
我正在使用带有 jackson 的 resttemplate 来编组/解组 java/json 对象。
序列化/反序列化的最佳策略是什么
可能包含键值对的 Map,键是字符串,值可以
是各种类型,例如自定义对象的 ArrayList
我在这个网站上做了一些研究,发现@JsonAnyGetter @JsonAnySetter 的用法
可以在这种情况下使用,但不确定如何在上下文中反序列化
resttemplate 的 getforobject 方法。是否必须编写自定义 httpmessageconverter
完成反序列化?
提前致谢。
【问题讨论】:
标签:
json
jackson
resttemplate
【解决方案1】:
我们假设您的回复如下:
{ 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)