Java中的JSON庫中提供了一個遞歸轉(zhuǎn)換Map對象的方法,具體實現(xiàn)如下:
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import java.util.HashMap; import java.util.Map; public class JsonUtil { public static MapjsonToMap(JSONObject json) throws JSONException { Map map = new HashMap<>(); for (String key : json.keySet()) { Object value = json.get(key); if (value instanceof JSONArray) { map.put(key, jsonToList((JSONArray) value)); } else if (value instanceof JSONObject) { map.put(key, jsonToMap((JSONObject) value)); } else { map.put(key, value); } } return map; } public static Map jsonToMap(String jsonStr) throws JSONException { JSONObject json = JSONObject.parseObject(jsonStr); return jsonToMap(json); } private static Object jsonToList(JSONArray array) throws JSONException { return array.stream() .map(o ->{ if (o instanceof JSONArray) { return jsonToList((JSONArray) o); } else if (o instanceof JSONObject) { return jsonToMap((JSONObject) o); } else { return o; } }) .toArray(); } }
該方法接收一個JSONObject或json字符串作為參數(shù),并返回一個Map對象。在方法內(nèi)部,如果value是JSONArray或JSONObject類型,則采用遞歸方式處理,并使用put方法將key-value對放入map中。
使用該方法將JSON轉(zhuǎn)換為Map對象,可以方便地對JSON進行操作和處理,比如數(shù)據(jù)篩選、查找、轉(zhuǎn)換等。
上一篇vue提前加載頁面