2012-03-26 14 views
0

私はJSONオブジェクトのいくつかを解析するためにGSONを見てきました。しかし、この特定のJSONオブジェクトは、以下のように索引付けされています。インデックス付きJSONを解析するGSON

{ 
    { 
     "1": 
      {"name":"Mike","age":"27"}, 
     "2": 
      {"name":"Sarah","age":"23"}, 
     "3": 
      {"name":"Jenny","age":"19"}, 
     "4": 
      {"name":"Joe","age":"24"}, 
     "5": 
      {"name":"Bob","age":"21"}, 

      ...and so on 
    } 
} 

私の理解では、各キーは適切なGSONオブジェクトの変数名に対応しています。

public class Person { 
    private String name; 
    private int age; 
} 

しかし、この場合には、どのように私は「1」、「2」、「3」、「4」の世話をします。たとえば、「5」のために、私はこのようなクラスを持っているでしょう、 "5"?任意の数のインデックスがありますので、単に変数に "1"、 "2"、 "3"、 "4"、 "5"という名前を付けることはできません(変数命名規則に反する)。 GSONはこの場合私を助けることができますか?

答えて

3

マップとしてデシリアライズを試みます。パラメータ化されたタイプへの参照を取得するには、GsonのTypeTokenクラスを使用する必要があります:

Type type = new TypeToken<Map<String, Person>>() {}.getType(); 
Map<String, Person> people = gson.fromJson(json, type); 
+0

これは完璧です!ありがとうございました! – Dan

関連する問題