一尘不染

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

json

尝试解析最小值以在Android中映射时出现问题。

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

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

该示例最常使用且易于使用,仅使用getString("id")或即可getValue("name")

但是,我该如何解析仅使用字符串和值最小格式的这种JSON格式映射到使用循环的Java地图集合。而且因为字符串json总是会彼此不同。例如:

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

谢谢


阅读 222

收藏
2020-07-27

共1个答案

一尘不染

您需要获取所有键的列表,对其进行循环,然后将它们添加到地图中,如下例所示:

    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);
    }
2020-07-27