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串中包含一個數組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++){...}