法門就是:見到{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對象);