[英]Deserializing JSON response to Java using RestTemplate and Jackson
我在使用Jackson的Spring Boot 1.5應用程序中將JSON反序列化為Java對象時遇到了一些麻煩。
如下所示,JSON響應是一個數組,由一個帶有一些嵌套屬性的JSON對象組成:
[
{
"deploymentProject": {
"id": 57966596,
"name": "MyApp 6.3"
},
"environmentStatuses": [{
"environment": {
"id": 57245736,
"name": "Dev1",
"deploymentProjectId": 57966596
},
"deploymentResult": {
"deploymentVersionName": "App-51",
"id": 59769040
}
},
{
"environment": {
"id": 57245737,
"name": "Dev2",
"deploymentProjectId": 57966596
},
"deploymentResult": {
"deploymentVersionName": "App-51",
"id": 59769041
}
}
]
}
]
ResultData.java
我不關心deploymentProject
屬性,所以我只包括environmentStatuses
在ResultData
。
@JsonIgnoreProperties(ignoreUnknown = true)
public class ResultData {
private EnvironmentStatus[] environmentStatuses;
// Getters and setters omitted
}
EnvironmentStatus.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class EnvironmentStatus {
private Environment environment;
private DeploymentResult deployment;
// Getters and setters omitted
}
Environment.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class Environment {
private long id;
private String name;
private String deploymentProjectId;
//Getters and setters omitted
}
DeploymentResult.java
@JsonIgnoreProperties(ignoreUnknown = true)
public class DeploymentResult {
private long id;
private String deploymentVersionName;
// Getters and setters omitted
}
當我在服務類中調用RestTemplate時, environmentStatuses
數組為null
:
Service.java
ResponseEntity<List<ResultData>> response = restTemplate.exchange(uriBuilder.toUriString(),
HttpMethod.GET, null, new ParameterizedTypeReference<List<ResultData>>() {});
return response.getBody();
private DeploymentResult deployment;
是下一個問題。.如果要在代碼中使用此名稱,則需要使用json結構名稱進行注釋。 或者如果不命名為deploymentResult
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.