2017-05-04 7 views
1

WebサービスからJSONデータを受け取り、Javaオブジェクトに変換したいと思います。方法はたくさんありますが、私はjsonで受け取った変更可能な配列キーを扱うことができません。変更可能な配列キーを持つJSONをJavaオブジェクトに変換する

JSON例: 2つのオブジェクトがある結果で

{ 
    "total": 2, 
    "last": "AAAI9Zgh", 
    "results": { 
     "67701510/2/1150671": { 
      "attributes": { 
       "200": "11444413213123", 
       "201": "Frank"  
      }, 
      "id": "67701510/2/1150671" 
     }, 
     "76701410/3/1330671": { 
      "attributes": { 
       "200": "11666613213123", 
       "201": "Mary" 
      }, 
      "id": "76701410/3/1330671" 
     } 
    } 
} 

。各オブジェクトの名前はオブジェクトのIDなので、変更可能です。 このようなメソッド

リターンnew Gson().Json(json、clazz);

は機能しません。

アトリビュートidの各オブジェクトにアクセスしたいと思います。

誰かが何らかの方法でこれを行うことができますか?

+1

マッピングのために 'Map 'を使用してください。 –

+1

素晴らしい!それは動作します!私がそれを "+"できるように答えを開いてください。 –

答えて

1

JSONに動的キーがある場合は、Map<String, Object>としてマッピングできます。

結果属性をラップするクラスResultがあるとします.GSONマッピングでMap<String, Result>を使用するだけで済みます。

0

jacksonをJavaライブラリとして使用し、JSON文字列をJavaマップに変換することができます。

ObjectMapper mapper = new ObjectMapper() 
Map parsedJson = mapper.readValue(json,Map.class) 

次に、parsedJson変数は、解析されたjsonを含むマップになります。

申し訳ありませんがGSONで例を表示していないため、私はこのライブラリにはあまり慣れていません。

関連する問題