【发布时间】:2018-08-31 04:36:20
【问题描述】:
我在使用 RestTemplate 将以下 JSON 响应输出中的 environments 数组映射到 Environment 对象列表时遇到问题。
ApplicationData 的name 属性正在填充Deploy app,这是正确的。但是,Application Data 中的环境列表是null。我希望用输出中的相应 id 和名称填充它。
JSON 输出
{
"id": 4587521,
"oid": 8738390651982315522,
"name": "Deploy app",
"description": "",
"environments": [
{
"id": 4751361,
"name": "Stage",
"position": 0,
"configurationState": "TASKED"
},
{
"id": 4751362,
"name": "Dev",
"position": 1,
"configurationState": "TASKED"
},
]
}
ApplicationData.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class ApplicationData {
private String name;
private List<Environment> environments;
// Getters and setters omitted
}
Environment.java
public class Environment {
private String id;
private String name;
// Getters and setters omitted
}
RestTemplate 代码
List<ApplicationData> applications = new ArrayList<>();
ResponseEntity<List<ApplicationData>> response =
restTemplate.exchange("/deploy/project/all", HttpMethod.GET, null,
new ParameterizedTypeReference<List<ApplicationData>>() {});
applications = response.getBody();
【问题讨论】:
-
您的环境 json 中有一个额外的凸轮。我不太确定,但尝试将
@JsonIgnoreProperties(ignoreUnknown = true)添加到 Environnement 并注意遵守 getter 的标准命名规则。您的代码似乎不错。 -
这只是我在 JSON 输出中的一个错字
标签: java json spring jackson resttemplate