1. 程式人生 > >json字串轉為map結構,用於處理遠端請求獲得json解析,自動解析多成結構

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<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;
        }
    }
}