我在try 用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"}

Thank

推荐答案

您需要获得所有键的列表,在其上循环,并将其添加到 map 中,如下例所示:

    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);
    }

Json相关问答推荐

PowerShell:将Invoke-WebRequest与变量一起使用

kotlinx-serialization:如何将具有不同类型对象的JsonArray转换为同一个Class

如何判断响应数组是否存在以及S是否有其他内容...?

如何在改装Android中将ResponseBody转换为JSONObject

使用快速json库编写json可以消除所有缩进

当由.sh脚本执行时,AWS查询字符串不会提取任何数据

导致此 Kotlin Retrofit2 错误的可能原因有哪些?

jq :当路径可变时更新 json 内容

每次在 SoapUI 中发送请求时,将 JSON 响应的子 node 分配给项目变量

JOLT JSON 将值从一对多转换为一对一

UTF-8 字符编码之战 json_encode()

Google GCM 服务器返回未经授权的错误 401

苗条的 JSON 输出

使用 jq,将对象数组转换为具有命名键的对象

如何使用 LWP 发出 JSON POST 请求?

使用杰克逊创建一个 json 对象

如何按键查找特定的 JSON 值?

waitUntilAllTask​​sAreFinished 错误 Swift

MySQL Select JSON 字段属性具有值的位置

通过url获取json数据并在python中使用(simplejson)