将<Map <String,Object >>列出到org.json.JSONObject?

yog*_*man 14 java json map javabeans

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();

map.put("abc", "123456");
map.put("def", "hmm");
list.add(map);
JSONObject json = new JSONObject(list);
try {
    System.err.println(json.toString(2));
} catch (JSONException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

这段代码出了什么问题?

输出是:

{"empty": false}
Run Code Online (Sandbox Code Playgroud)

小智 21

public String listmap_to_json_string(List<Map<String, Object>> list)
{       
    JSONArray json_arr=new JSONArray();
    for (Map<String, Object> map : list) {
        JSONObject json_obj=new JSONObject();
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
            try {
                json_obj.put(key,value);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }                           
        }
        json_arr.put(json_obj);
    }
    return json_arr.toString();
}
Run Code Online (Sandbox Code Playgroud)

好吧,试试这个〜这对我有​​用:D

  • 它是'12,我正在寻找答案:)我正在寻找与此非常相似的东西(尤其是HashMaps的ArrayList),这有很大帮助. (2认同)

Wol*_*gon 1

您有一个嵌套在列表中的地图。您试图在不先遍历列表的情况下调用 Map。JSON 有时感觉很神奇,但实际上并非如此。我稍后会发布一些代码。
制作地图的地图而不是地图的列表与 JSON 更加一致。

JSONObject json = new JSONObject(list);
Iterator<?> it = json.keys();
while (keyed.hasNext()) {
    String x = (String) it.next();
    JSONObject jo2 = new JSONObject(jo.optString(x));
}
Run Code Online (Sandbox Code Playgroud)