2017-09-30 415 views
1

欲從這樣從由密鑰生成JSON創建POJO =>值陣列

{ 
     "1": [ 
      { 
       "idmapel": 1, 
       "label": "Fisika" 
      }, 
      { 
       "idmapel": 2, 
       "label": "Kimia" 
      }, 
      { 
       "idmapel": 3, 
       "label": "Biologi" 
      }, 
      { 
       "idmapel": 4, 
       "label": "Matematika" 
      }, 
     ], 
    "2":[ 
    { 
     "idmapel": 1, 
     "label": "Fisika" 
    } 
    ] 
} 

一個JSON創建POJO當我從http://www.jsonschema2pojo.org/它創建了一個圖1和2類產生,但可以想象,如果我有更多的比2鍵。我想能夠通過這樣的東西訪問元素ObjectClass::getList(1)ObjectClass::getList(2)

+0

你能詳細說明嗎?我想象的不止兩個鍵,但似乎沒有任何事情發生。你說它的工作原理 - 你擔心可擴展性還是什麼?如果是這樣,你有什麼擔心? –

+0

我正在從服務器檢索這個翻新,結果可能包含關鍵1,2,3,..,N,依賴於數據,所以我想要的是我想能夠通過密鑰獲得集合,如果我想要使用1個密鑰獲取集合,它應該可以通過ObjectClass :: get(key)進行訪問,其中key是1,2,或者這個json –

回答

1

您可以使用Map來做到這一點。

Map<String, List<Pojo>> map = deserialize(jsonSring); 

其中Pojo是具有字段idmapellabel類,deserialize是反序列化JSON到對象和jsonString是JSON字符串值反序列化的方法。然後你可以訪問列表中的鍵

List<Pojo> list1 = map.get("1"); 
List<Pojo> list2 = map.get("2"); 
+0

上的任何密鑰似乎都是最好的方法,將嘗試 –