我使用RestTemplate从Jira中检索问题列表。作为响应,我获得了包含大量字段的String,其中一些是数组。请求看起来像:
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
响应字符串如下所示:
{
"expand": "schema,names",
"total": 12,
"issues": [
{
"id": "32",
"key": "TEST-1",
"fields": {
"fixVersions": [
{
"description": "",
"releaseDate": "2017-04-02"
}
]
},
{
"id": "32",
"key": "TEST-2",
"fields": {
"fixVersions": [
{
"description": "",
"releaseDate": "2017-04-01"
}
]
}
]
}
是否可以将此String转换为Map,其中Object可以是String或Map of List或类似的东西,而无需定义适当的对象。因此,我希望能够通过以下方式访问说明:response.getIssues().get(0).getFields().getFixVersion().get(0).getDescription()
在这种情况下,定义特定对象链看起来太麻烦了。
答案 0 :(得分:0)
您可以创建自己的POJO类,它们对应于响应JSON的结构。 基于您共享的json,您可以拥有如下类结构:
public class Response {
private String expand;
private String total;
private List<Issues> issues;
}
public class Issues {
private String id;
private String key;
private Map<String, List<FixVersions> fields;
}
public class FixVersions {
private String description;
private String releaseData;
}
您的GET
来电将更改为以下内容:
ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET,entity,Response.class);
P.S。 - POJO课程中的所有字段都必须有getter和 塞特斯也是。