法门就是:见到{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对象);