【发布时间】:2015-02-26 05:57:13
【问题描述】:
我正在尝试使用 Spring 使用以下 API 调用:
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + base64Creds);
HttpEntity<String> request = new HttpEntity<String>(headers);
RestTemplate restTemplate = new RestTemplate();
Item item = restTemplate.exchange(url, HttpMethod.GET, request, Item.class).getBody();
我从 API 得到的响应格式如下:
{
"item":[{
"itemname": "abc",
"qty":...
}]
}
Item 类具有以下字段:
Class Item{
@JsonProperty("itemname")
String name;
@JsonProperty("qty")
int quantity;
// Getter / setter methods
}
我在字段中添加了 JsonProperty 注释,因为它们的名称与我从 API 获得的 json 不同。有了这个,我能够成功地反序列化 api 响应。
但是,当我尝试再次将 Item 类序列化为 json 时,字段名称为“itemname”和“qty”。有什么方法可以将这些保留为“名称”和“数量”,但又能够映射到 API 响应?
提前致谢。
【问题讨论】:
-
我认为您混淆了序列化和反序列化。当从外部表示中检索值时 - 它是反序列化,当保存在外部表示中时 - 它是序列化。
标签: spring resttemplate