我无法使用environments
将以下JSON响应输出中的Environment
数组映射到RestTemplate
个对象列表。
ApplicationData的name
属性正在使用Deploy app
填充,这是正确的。但是,应用程序数据中的环境列表为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();
答案 0 :(得分:0)
我最终修改了我的ApplicationData类,因此该属性是一个Environment对象数组:
private Environment[] environments;
然后填充正确。
答案 1 :(得分:0)
但我没有得到的是,您序列化为List<ApplicationData>
,但您的JSON输出片段仅显示单个ApplicationData对象,而不是具有此单个对象的列表。您是否应用了ACCEPT_SINGLE_VALUE_AS_ARRAY
之类的任何Jackson Deserialization Features?