json字串轉為map結構,用於處理遠端請求獲得json解析,自動解析多成結構
阿新 • • 發佈:2018-12-18
很實用的工具類
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<String, Object> json2Map(String jsonStr) { Map<String, Object> 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<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Iterator<JSONObject> 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; } } }