隨著 Web 服務的興起,越來越多的數據采用 JSON(JavaScript Object Notation,JavaScript對象表示法)格式來進行傳遞和存儲。于是,使用 Java 解析 JSON 數據愈發重要。
在 Java 中,我們可以使用 JSON 解析庫,比如:Gson 和 org.json。
下面我們以 Gson 為例,介紹一下如何解析各節點。
// 導入 Gson 庫 import com.google.gson.JsonObject; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.JsonArray;
1. 解析 JSON 中的基本類型節點
對于 JSON 中的基本類型節點,比如 String、int、boolean 等,我們可以直接使用 Gson 的 get 方法獲取對應的值。例如:
String jsonStr = "{ \"name\": \"Leo\", \"age\": \"23\", \"isStudent\": false }"; JsonElement jsonElement = new JsonParser().parse(jsonStr); JsonObject jsonObject = jsonElement.getAsJsonObject(); String name = jsonObject.get("name").getAsString(); // 獲取 name 的值 int age = jsonObject.get("age").getAsInt(); // 獲取 age 的值 boolean isStudent = jsonObject.get("isStudent").getAsBoolean(); // 獲取 isStudent 的值
2. 解析 JSON 中的數組節點
對于 JSON 中的數組節點,我們可以使用 Gson 中的 JsonArray 來進行解析。例如:
String jsonArrayStr = "{ \"grades\": [100, 95, 86] }"; JsonElement jsonArrayElement = new JsonParser().parse(jsonArrayStr); JsonObject jsonArrayObject = jsonArrayElement.getAsJsonObject(); JsonArray grades = jsonArrayObject.getAsJsonArray("grades"); // 獲取 grades 數組 for (JsonElement grade : grades) { System.out.println(grade.getAsInt()); // 輸出數組中的元素 }
3. 解析 JSON 中的對象節點
對于 JSON 中的對象節點,我們可以使用 Gson 中的 JsonObject 來進行解析。例如:
String jsonObjStr = "{ \"person\": {\"name\": \"Leo\", \"age\": \"23\", \"isStudent\": false} }"; JsonElement jsonObjElement = new JsonParser().parse(jsonObjStr); JsonObject personObject = jsonObjElement.getAsJsonObject().getAsJsonObject("person"); // 獲取 person 對象 String name = personObject.get("name").getAsString(); // 獲取 name 字段的值 int age = personObject.get("age").getAsInt(); // 獲取 age 字段的值 boolean isStudent = personObject.get("isStudent").getAsBoolean(); // 獲取 isStudent 字段的值
以上就是使用 Gson 解析 JSON 中的各節點的方法。當然,Java 中還有其他 JSON 解析庫,大體的用法都差不多。
下一篇vue更新子組件