2012-03-26 108 views
0

我已經看過GSON來解析我的一些JSON對象。然而,這種特殊的JSON對象是索引象下面這樣:GSON解析索引的JSON

{ 
    { 
     "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對象。例如,對於「5」,我會有這樣一類:

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

然而,在這種情況下,如何將予採取的「1」,「2」,「3」,「4」護理和「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 2012-03-27 03:59:19