仅用string和值分析JSON对象

我试图用最小的值parsingAndroid中的地图时遇到问题。

有一些样本JSON格式,包含更多信息例如:

[{id:"1", name:"sql"},{id:"2",name:"android"},{id:"3",name:"mvc"}] 

这个例子最常用和易于使用的只是使用getString("id")getValue("name")

但是,我怎样parsing才能使用这个JSON格式,只用string和值的最小格式映射到使用循环的java地图集合。 而且因为stringjson会永远与另一个不同。 例如:

 {"1":"sql", "2":"android", "3":"mvc"} 

谢谢

Solutions Collecting From Web of "仅用string和值分析JSON对象"

您需要获取所有密钥的列表,并将其添加到您的地图中,如下面的示例所示:

  String s = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}"; JSONObject jObject = new JSONObject(s); JSONObject menu = jObject.getJSONObject("menu"); Map<String,String> map = new HashMap<String,String>(); Iterator iter = menu.keys(); while(iter.hasNext()){ String key = (String)iter.next(); String value = menu.getString(key); map.put(key,value); } 

我的伪代码示例如下:

 JSONArray jsonArray = "[{id:\"1\", name:\"sql\"},{id:\"2\",name:\"android\"},{id:\"3\",name:\"mvc\"}]"; JSON newJson = new JSON(); for (each json in jsonArray) { String id = json.get("id"); String name = json.get("name"); newJson.put(id, name); } return newJson;