public static Map<String, Object> parseJSON2Map(String jsonStr) {
Map<String, Object> map = new HashMap<String, Object>();
// 最外层解析
JSONObject json = null;
try {
json = JSONObject.fromObject(jsonStr);
} catch (Exception e) {
logger.error(e);
logger.error(json);
map.put("status", "500");
map.put("message", "json解析失败");
return map;
}
for (Object k : json.keySet()) {
Object v = json.get(k);
// 如果内层还是数组的话,继续解析
if (v instanceof JSONArray) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Iterator<JSONObject> it = ((JSONArray) v).iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
list.add(parseJSON2Map(json2.toString()));//进行回调
}
map.put(k.toString(), list);
} else {
map.put(k.toString(), v);
}
}
return map;
}