1. 程式人生 > >工具類之json處理

工具類之json處理

專案遇到將json陣列轉化為集合list或者map,使用的是阿里的fastjson包,主要方法主要體現在:

 - json陣列轉化為list<Map<String,Object>>
public static  List<Map<String, Object>> fromJsonArrayToList(JSONArray jsonArray){
        List<Map<String, Object>> list = new ArrayList();
        for (Object object : jsonArray) {
        //轉化為json物件
JSONObject jsonObject = (JSONObject) object; Map<String, Object> map = new HashMap(); //遍歷json物件 for (Map.Entry<String, Object> entry : jsonObject.entrySet()) { //如果json物件裡巢狀json陣列, if(entry.getValue() instanceof JSONArray){ map
.put((String)entry.getKey(), fromJsonArrayToList((JSONArray)entry.getValue())); }else{ map.put((String)entry.getKey(), entry.getValue()); } } list.add(map); } return list; }
  • json字串轉化為map集合
    public
static Map<String, Object> fromJsonToMap(String jsonString){ Map<String , Object> jsonMap = JSONObject.parseObject(jsonString, Map.class); Map<String, Object> resultMap = new HashMap(); for(Map.Entry<String, Object> e : jsonMap.entrySet()){ if(jsonMap.get(e.getKey()) instanceof JSONArray){ JSONArray jsonArray = (JSONArray)jsonMap.get(e.getKey()); List<Map<String, Object>> list = fromJsonArrayToList(jsonArray); resultMap.put(e.getKey(), list); }else{ resultMap.put(e.getKey() , jsonMap.get(e.getKey()) ); } } return resultMap; }

測試:

public static void main(String[] args) {
        JSONArray jsonArray=new JSONArray();
        for (int i=0;i<10;i++){
            JSONObject jsonObject=new JSONObject();
            jsonObject.put(i+"",i);
            jsonArray.add(jsonObject);
        }
        JSONObject jsonObject=new JSONObject();
        jsonObject.put("a",jsonArray);
        List<Map<String,Object>> list=fromJsonArrayToList(jsonArray);
        String jsonString="{'a':'a','b':'b'}";
        Map<String,Object> map=fromJsonToMap(jsonString);
    }