在Java中,我們經常需要使用JSON格式的數據來進行數據的傳輸、存儲和解析,而JSON中的數據類型包括字符串、數字、布爾值、對象和數組等。而數組是由一個有序的編組數據組成的,每個數據的索引位置從0開始,用方括號[]表示。
例如,下面的JSON數據中包含有數組類型的值: { "name": "小明", "age": 20, "hobby": ["游泳", "打籃球", "聽音樂"], "friends": [ {"name": "小紅", "age": 18}, {"name": "小李", "age": 20}, {"name": "小張", "age": 22} ] }
可以看到,該JSON數據中的"hobby"和"friends"字段都是數組類型的值,而"hobby"數組中包含有三個字符串類型的元素,而"friends"數組中則包含有三個對象類型的元素。我們可以使用Java的JSON解析庫來進行JSON數據的解析和操作,例如使用阿里巴巴的FastJson庫:
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class JsonArrayDemo { public static void main(String[] args) { String jsonStr = "{\"name\":\"小明\",\"age\":20,\"hobby\":[\"游泳\",\"打籃球\",\"聽音樂\"],\"friends\":[{\"name\":\"小紅\",\"age\":18},{\"name\":\"小李\",\"age\":20},{\"name\":\"小張\",\"age\":22}]}"; JSONObject jsonObj = JSONObject.parseObject(jsonStr); JSONArray hobbyArray = jsonObj.getJSONArray("hobby"); JSONArray friendsArray = jsonObj.getJSONArray("friends"); //遍歷hobby數組 System.out.println("小明的愛好有:"); for(int i = 0; i< hobbyArray.size(); i++) { System.out.println(hobbyArray.getString(i)); } //遍歷friends數組 System.out.println("小明的朋友有:"); for(int i = 0; i< friendsArray.size(); i++) { JSONObject friendObj = friendsArray.getJSONObject(i); System.out.println(friendObj.getString("name") + ",年齡為:" + friendObj.getIntValue("age")); } } }
在上面的代碼中,我們首先通過FastJson的JSONObject.parseObject()方法將JSON字符串解析為一個JSONObject對象。然后,我們使用getJSONArray()方法分別獲取"hobby"和"friends"數組。在遍歷"hobby"數組時,我們可以使用JSONArray的getString()方法獲取每個元素的值;而在遍歷"friends"數組時,則需要使用JSONObject的get()方法獲取每個元素的子對象,然后再使用相應的方法獲取子對象的值。