json解析map內含list,list內又含map這種結構


法門就是:見到{aa:bb}用map裝,見到[aa,bb]用list裝就行了!

jquery中獲取到json串後,若是map請這樣:

                  var map = eval("("+data2+")");
                  var data = map.data;
                  for(var key in data){
                   alert(key+':'+data[key]);
                  };    

注意要先eval,不然無法遍歷的!


json串:

    {  
        "user_id": 5300,   
        "flag": 0,   
        "configs": [  
            {  
                "user_id": 5300,   
                "config_item_id": 1015,   
                "type": 0  
            },   
            {  
                "user_id": 5300,   
                "config_item_id": 1016,   
                "type": 0  
            }  
        ]  
    }  


新建一個實體類:

private int user_id
private int flag
private List<Map> config 

fastjson版本:

    HashMap jsonMap = JSON.parseObject(jsonData, HashMap.class);  
    List<HashMap> configDataList = (List<HashMap>)jsonMap.get("configs");  
    for(HashMap configData : configDataList ){//這行出錯  
        int roleId = (Integer)configData.get("type");  
        System.out.println("config.type:" + roleId);  
    }  


jackson版本:

DeviceResult result = mapper.readValue(rs, DeviceResult.class);
List<Map> dataList =  result.getData();
Map resultMap = dataList.get(0);
imei = (String) resultMap.get("carnum");




補:Fastjson序列化map時,保留map的進出棧順序的方法

JSONObject jsonObject = new JSONObject(true);
jsonObject.put(“key”, 你的map對象);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章