MAP to JSON 操作

2013年 4月 06日

tags: java


使用org.json.JSONObject 包时 将多维Map转换为JSONObject ,必须手动处理高于最后一维的数据才能得到每一维都有意义的JSON字符串

对于这样的一个HashMap m

settings = new HashMap<String, Map<String, String>>();  
HashMap<String, String> m = new HashMap<String, String>();  
m.put("SubKey", "Value");  
settings.put("key", m);  
JSONObject obj = new JSONObject(settings);

这样的简单用法是不行的。 输出 obj.toString() :

{"key":{SubKey=Value}}

JSONObject obj = new JSONObject(settings);  
try {  
    if (settings != null && settings.size() > 0) {  
        Set<String> keySet = settings.keySet();  
        for (String key : keySet) {  
            JSONObject item = new JSONObject(settings.get(key));  
            obj.put(key, item);  
            // TODO Auto-generated catch block  
        }  
    }  
} catch (JSONException e) {  
    e.printStackTrace();  
} 

输出 obj.toString() :

{"key":{"SubKey":"Value"}}

评论!

社交