Java的REST服務在Web開發中扮演著非常重要的角色,它使用超文本傳輸協議(HTTP)進行通信。REST服務將資源抽象成為一組URL,通過HTTP的請求方式(GET,POST,PUT,DELETE)對資源進行交互操作。在REST服務中,JSON(JavaScript Object Notation)是一種常用的數據傳輸格式。
{ "name": "John", "age": 25, "isStudent": true, "hobbies": [ "reading", "listening to music", "playing sports" ] }
上述例子是一個基本的JSON數據,由鍵值對組成,鍵值對之間使用逗號分隔,可以嵌套使用。Java通過使用JSON庫來處理和生成JSON數據。
// 創建一個JSONObject對象 JSONObject obj = new JSONObject(); obj.put("name", "John"); obj.put("age", 25); obj.put("isStudent", true); // 創建一個JSONArray對象 JSONArray hobbies = new JSONArray(); hobbies.put("reading"); hobbies.put("listening to music"); hobbies.put("playing sports"); obj.put("hobbies", hobbies); // 將JSONObject轉換為JSON字符串 String jsonStr = obj.toString();
這里演示了如何將Java對象轉換成JSON字符串。通過創建JSONObject和JSONArray對象,使用put方法設置鍵值對和數組元素,在最后調用toString方法即可得到JSON字符串。反之亦然,可以將JSON字符串轉換為Java對象。
// 一個JSON字符串 String jsonStr = "{'name':'John','age':25,'isStudent':true,'hobbies':['reading','listening to music','playing sports']}"; // 將JSON字符串轉換為JSONObject對象 JSONObject obj = new JSONObject(jsonStr); // 獲取對象屬性值 String name = obj.getString("name"); int age = obj.getInt("age"); boolean isStudent = obj.getBoolean("isStudent"); JSONArray hobbies = obj.getJSONArray("hobbies"); // 遍歷JSONArray for (int i = 0; i< hobbies.length(); i++) { String hobby = hobbies.getString(i); }
這里演示了如何將JSON字符串轉換成Java對象。通過創建JSONObject對象的構造方法傳入JSON字符串,即可得到該JSON字符串對應的JSONObject對象。然后可以通過getString,getInt和getBoolean等方法獲取對象屬性值,通過getJSONArray方法獲取JSONArray對象,在遍歷JSON數組元素。