使用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"}}
评论!