json转map通用方法
这里提供一方法,可以当作工具类,只要json字符串没有问题,嵌套几层都可以。
import net.sf.json.JSONArray;
import net.sf.json.JSONObject
public class Json2Map {
/**
* 将json字符串转为Map结构
* 如果json复杂,结果可能是map嵌套map
* @param jsonStr 入参,json格式字符串
* @return 返回一个map
*/
public static Map json2Map(String jsonStr) {
Map map = new HashMap<>();
if(jsonStr != null && !"".equals(jsonStr)){
//最外层解析
JSONObject json = JSONObject.fromObject(jsonStr);
for (Object k : json.keySet()) {
Object v = json.get(k);
//如果内层还是数组的话,继续解析
if (v instanceof JSONArray) {
List> list = new ArrayList>();
Iterator it = ((JSONArray) v).iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
list.add(json2Map(json2.toString()));
}
map.put(k.toString(), list);
} else {
map.put(k.toString(), v);
}
}
return map;
}else{
return null;
}
}
}