2017-04-06 45 views
0

我正在使用RestTemplate从Jira中检索问题列表。作为响应,我得到了很多字段的String,其中一些是数组。请求的样子:如何使用RestTemplate自动将响应字符串解析为地图

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" 
     } 
    ] 
} 
] 
} 

是否有可能这个字符串转换成地图,在那里对象可以是字符串或地图列表或这样的事情,但没有界定适当的对象。因此,我希望可以通过以下方式访问说明:response.getIssues().get(0).getFields().getFixVersion().get(0).getDescription()

在这种情况下,定义特定对象链显得太麻烦。

回答

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响应= restTemplate.exchange(URL, HttpMethod.GET,entity,Response.class);

P.S. - POJO课程中的所有领域都必须有他们的获得者和 设定者。

相关问题