JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,通常用于客戶端和Web服務之間的數據傳輸。Java是一種面向對象的編程語言,可以很容易地將JSON數據轉換成對象。在Java中,我們可以使用JSON庫來解析和生成JSON數據。
JSON可以包含多層嵌套對象和數組。在Java中,我們通常使用JSONObject和JSONArray類來表示它們。JSONObject表示一個JSON對象,它包含鍵值對。JSONArray表示一個JSON數組,它包含多個JSON對象或基本數據類型。
// 例如,以下JSON數據包含一個名為"person"的對象, // 它包含一個名為"name"的字符串屬性和一個名為"address"的對象屬性, // "address"對象包含一個名為"city"的字符串屬性和一個名為"street"的字符串屬性。 { "person": { "name": "John Doe", "address": { "city": "New York", "street": "5th Avenue" } } }
在Java中,我們可以使用以下代碼來解析JSON數據:
String json = "{\"person\": {\"name\": \"John Doe\", \"address\": {\"city\": \"New York\", \"street\": \"5th Avenue\"}}}"; JSONObject jsonObject = new JSONObject(json); JSONObject personObject = jsonObject.getJSONObject("person"); String name = personObject.getString("name"); JSONObject addressObject = personObject.getJSONObject("address"); String city = addressObject.getString("city"); String street = addressObject.getString("street");
以上代碼將JSON字符串解析成一個JSONObject對象,然后使用getJSONObject和getString方法從中獲取所需的值。
如果JSON數據中包含一個數組,例如以下JSON數據:
// 以下JSON數據包含一個名為"people"的數組, // 每個元素是一個包含"name"和"age"屬性的對象。 { "people": [ { "name": "John Doe", "age": 30 }, { "name": "Jane Doe", "age": 25 } ] }
我們可以使用以下代碼來解析JSON數組:
String json = "{\"people\": [{\"name\": \"John Doe\", \"age\": 30}, {\"name\": \"Jane Doe\", \"age\": 25}]}"; JSONObject jsonObject = new JSONObject(json); JSONArray peopleArray = jsonObject.getJSONArray("people"); for (int i = 0; i< peopleArray.length(); i++) { JSONObject personObject = peopleArray.getJSONObject(i); String name = personObject.getString("name"); int age = personObject.getInt("age"); }
以上代碼將JSON字符串解析成一個JSONObject對象,然后使用getJSONArray方法從中獲取數組,然后使用getJSONObject和getString或getInt方法從中獲取所需的值。