仅使用字符串和值解析JSON对象

Edy*_* Cu 36 java parsing android json map

尝试使用最小值解析以在Android中映射时,我遇到了问题.

有一些示例JSON格式,其中包含更多信息:

[{id:"1", name:"sql"},{id:"2",name:"android"},{id:"3",name:"mvc"}]
Run Code Online (Sandbox Code Playgroud)

这个例子最常用,易于使用,只需使用getString("id")getValue("name").

但是我如何解析使用这种JSON格式进行映射,只使用字符串和值最小格式到使用循环的java地图集合.因为字符串json总是彼此不同.例如:

{"1":"sql", "2":"android", "3":"mvc"}
Run Code Online (Sandbox Code Playgroud)

谢谢

dog*_*ane 88

您需要获取所有键的列表,循环遍历它们并将它们添加到地图中,如下例所示:

    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);
    }
Run Code Online (Sandbox Code Playgroud)


Buh*_*ndi 9

我的伪代码示例如下:

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;
Run Code Online (Sandbox Code Playgroud)