如何使用RestTemplate反序列化嵌套列表?

时间:2019-01-28 09:32:27

标签: java serialization resttemplate

我有一个响应,该响应是通过调用RestTemplate获得的。在反序列化对目标类的响应时遇到问题。我可以获取“代码”和“消息”,但无法获取数据作为列表。 这是我的响应类和RestTemplate调用。

public class DataResponse {
    Long code;
    String message;
    BusinessClusterData data;
    public class BusinessClusterData {
        @SerializedName("data")
        List<BusinessClusterContent> businessClusterContentList;
        Long count;
    }
}
ResponseEntity<DataResponse> response = 
        restTemplate.exchange(url, HttpMethod.GET, entity, DataResponse.class);

这是回应。

{
    "code": 0,
    "message": "ok",
    "data": {
        "data": [
        {
            "name": "test_name",
            "host": "test_host",
            "segInfo": [
            {
                "state": "applyed",
                "formId": 42158
            }
        ]}
      ],
    "count": 1
  }
}

1 个答案:

答案 0 :(得分:0)

您应该使用@JsonPropertycom.fasterxml.jackson.annotation.JsonProperty)而不是像Gson的@SerializedName

public class BusinessClusterData {
    @JsonProperty("data")
    List<BusinessClusterContent> businessClusterContentList;
    Long count;
}

我还认为您应该将BusinessClusterData设为静态类,因为它不依赖于DataResponse的实例