JSON获取数组——读完你就读懂了JSON

JSON获取数组没有什么好说的,java里面直接使用json的JSONArray类即可:

JSONArray strArray = mjson.getJSONArray("Array");

但我们有时候获取的json结构往往不是这么简单的,例如下面:
{“a”:1,”b”:2,”c”:{“d”:3,”e”:4,”f”:[{“g”:5,”h”:6},{“g”:7,”h”:8}]}}
解析后是这样(注意区分中括号和大括号):

json

可以看出这个json串中包含一个数组f,通过上述方法获取到很麻烦,这里使用jackson的ObjectMapper类对其进行解析。json中的集合只能解析为两种:map和list,显然在上述json串中,我们要将数组f解析为list,而整个json串和c要解析为map,按这个思路解析代码如下:

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> jsonMap = null;
//将json串为map,注意实际使用时需要加try catch
jsonMap = mapper.readValue(json, Map.class);
//获取c
Map<String, Object> cMap = (Map<String, Object>)jsonMap.get("c");
//获取f
List<Map<String, Object>> fList = (List<Map<String, Object>>) cMap.get("f");
//遍历f
for(int i=0; i<fList.size(); i++){...}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章