2017-09-30 41 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

上的任何密钥似乎都是最好的方法,将尝试 –