此處把常用的一些方法,簡單做個記錄。
做自動化時,我們傳送一個請求,返回的是一個字串。首先我們要把這個字串轉換為json物件
parseObject()
:將 JSON 字串解析為 Java 物件。
String json = "{\"person\":{\"name\":\"Ivy\",\"age\":60}}"; JSONObject jsonObject3 = JSON.parseObject(json); JSONObject personObject = jsonObject3.getJSONObject("person"); String name3 = personObject.getString("name"); System.out.println("Name: " + name3);
執行結果:Name: Ivy
=================================================================================
把字串轉為json物件後,我們需要獲取裡面的各種值
1、獲取物件為字串或者整數:
get(Object key)
: 獲取 JSON 物件中的屬性值
如果value的值是string,則使用jsonObject.getString(value)方法
如果value的值是int,則使用jsonObject.getIntValue(value)方法
JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "Ian"); jsonObject.put("age", 60); String name = jsonObject.getString("name"); int age = jsonObject.getIntValue("age"); System.out.println("Name: " + name + ", Age: " + age);
執行結果:Name: Ian, Age: 60
getInteger(String key): 獲取 JSON 物件中的整數屬性值 public static void getIntegerExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "80"); // 儲存為字串 int age = jsonObject.getInteger("age"); // 解析為整數 System.out.println("Age: " + age); } 34. getLong(String key) : 獲取 JSON 物件中的長整數屬性值 public static void getLongExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "90"); // 儲存為字串 long age = jsonObject.getLong("age"); // 解析為長整數 System.out.println("Age: " + age); } 35. getShort(String key) : 獲取 JSON 物件中的短整數屬性值 public static void getShortExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "100"); // 儲存為字串 short age = jsonObject.getShort("age"); // 解析為短整數 System.out.println("Age: " + age); } 36. getByte(String key) : 獲取 JSON 物件中的位元組屬性值 public static void getByteExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("age", "110"); // 儲存為字串 byte age = jsonObject.getByte("age"); // 解析為位元組 System.out.println("Age: " + age); } 37. getFloat(String key): 獲取 JSON 物件中的浮點數屬性值 public static void getFloatExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("height", "175.5"); // 儲存為字串 float height = jsonObject.getFloat("height"); // 解析為浮點數 System.out.println("Height: " + height); } 38. getDouble(String key) : 獲取 JSON 物件中的雙精度浮點數屬性值 public static void getDoubleExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("weight", "65.5"); // 儲存為字串 double weight = jsonObject.getDouble("weight"); // 解析為雙精度浮點數 System.out.println("Weight: " + weight); }
39. getBoolean(String key): 獲取 JSON 物件中的布林屬性值 public static void getBooleanExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("isStudent", "true"); // 儲存為字串 boolean isStudent = jsonObject.getBoolean("isStudent"); // 解析為布林值 System.out.println("Is Student: " + isStudent); } 40. getBigDecimal(String key): 獲取 JSON 物件中的 BigDecimal 屬性值 public static void getBigDecimalExample() { JSONObject jsonObject = new JSONObject(); jsonObject.put("price", "99.99"); // 儲存為字串 java.math.BigDecimal price = jsonObject.getBigDecimal("price"); // 解析為 BigDecimal System.out.println("Price: " + price); }
getJSONObject()
:獲取 JSON 物件中的子物件。
String json = "{\"person\":{\"name\":\"Ivy\",\"age\":60}}"; JSONObject jsonObject = JSON.parseObject(json); JSONObject personObject = jsonObject.getJSONObject("person"); String name = personObject.getString("name"); System.out.println("Name: " + name);
執行結果:Name: Ivy
getJSONArray()
:獲取 JSON 物件中的子陣列。
String json = "{\"numbers\":[1, 2, 3, 4, 5]}"; JSONObject jsonObject = JSON.parseObject(json); JSONArray numbersArray = jsonObject.getJSONArray("numbers"); int sum = 0; for (Object num : numbersArray) { sum += (int) num; } System.out.println("Sum: " + sum);
執行結果:Sum: 15
size()
:獲取 JSON 物件或陣列的元素數量。
String json = "{\"names\":[\"Mary\",\"Nancy\",\"Oliver\"]}"; JSONObject jsonObject = JSON.parseObject(json); JSONArray namesArray = jsonObject.getJSONArray("names"); int size = namesArray.size(); System.out.println("Array Size: " + size);
執行結果:Array Size: 3
containsValue(Object value)
: 檢查 JSON 物件是否包含指定的值
JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "Bob"); jsonObject.put("age", 35); boolean containsName = jsonObject.containsValue("Bob"); boolean containsGender = jsonObject.containsValue("Male"); System.out.println("Contains Name: " + containsName); System.out.println("Contains Gender: " + containsGender);
執行結果:
Contains Name: true
Contains Gender: false
containsKey()
:檢查 JSON 物件是否包含指定的鍵。
String json = "{\"name\":\"Peter\",\"age\":70}"; JSONObject jsonObject = JSON.parseObject(json); boolean containsAge = jsonObject.containsKey("age"); boolean containsEmail = jsonObject.containsKey("email"); System.out.println("Contains Age: " + containsAge); System.out.println("Contains Email: " + containsEmail);
執行結果:
Contains Age: true
Contains Email: false