2017-04-06 9 views
0

Jiraからの問題のリストを取得するためにRestTemplateを使用しています。レスポンスとして、たくさんのフィールドを持つ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

レスポンスJSONの構造に対応する独自のPOJOクラスを作成できます。 あなたが共有している、あなたはこのようなクラス構造を持つことができます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クラスのすべてのフィールドにゲッターと セッターも必要です。

関連する問題