其余模板序列化/反序列化与variosu键,值对映射对象
问题描述:
我正在使用resttemplate与杰克逊marshall/unmarshall java/json对象。 什么是序列化的最佳策略/反序列化其余模板序列化/反序列化与variosu键,值对映射对象
可能包含键值对,这样的键是字符串,值可以 是多种类型,例如自定义的ArrayList对象
我做了一些研究地图在这个网站上,发现使用@JsonAnyGetter @JsonAnySetter 可以用在这种情况下,但并不确定如何在resttemplate getforobject方法的上下文 中反序列化。将不得不写一个自定义httpmessageconverter 来完成反序列化? 在此先感谢。
答
我们假设你有一个这样的回应:
{ 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)