Json数据转换成Map对象
最近的一个项目中需要将前端的数据放入在map集合中和后台进行数据交互,在进行JSONObject转换List/map等集合对象的时候就会报错,在网上查了一下,封装成一个工具类以后用的时候就方便多了。
封装的工具类JsonParseUtil
public class JsonParseUtil { public static List<Map<String, Object>> parseJSON2List(String json) { JSONArray jsonArr = JSONArray.fromObject(json); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Iterator<JSONObject> it = jsonArr.iterator(); while (it.hasNext()) { JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } return list; } public static Map<String, Object> parseJSON2Map(String jsonStr) { ListOrderedMap map = new ListOrderedMap(); // 最外层解析 JSONObject json = JSONObject.fromObject(jsonStr); 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); } } Iterator iterator = map.keySet().iterator(); List<String> lsList = new ArrayList<String>(); int d=0; while (iterator.hasNext()) { String key = (String) iterator.next(); Object object = map.get(key); // 进行遍历删除,当值为空的时候删除这条数据 if (object.equals("")) { iterator.remove(); map.remove(key); } } return map; } }