- Gson教程
- Gson - 首頁
- Gson - 概述
- Gson - 環境設定
- Gson - 第一個應用程式
- Gson - 類
- Gson - 物件序列化
- Gson - 資料繫結
- Gson - 物件資料繫結
- Gson - 樹模型
- Gson - 流
- Gson - 序列化示例
- Gson - 序列化內部類
- Gson - 自定義型別介面卡
- Gson - 空物件支援
- Gson - 版本控制支援
- 從序列化中排除欄位
- Gson 有用資源
- Gson - 快速指南
- Gson - 有用資源
- Gson - 討論
Gson - 樹模型
樹模型會準備 JSON 文件的記憶體中樹表示形式。它構建了一個 JsonObject 節點樹。這是一種靈活的方法,類似於 XML 的 DOM 解析器。
從 JSON 建立樹
讀取 JSON 後,JsonParser 會提供指向樹根節點的指標。可以將根節點用於遍歷整個樹。考慮以下程式碼片段來獲取所提供 JSON 字串的根節點。
//Create an JsonParser instance
JsonParser parser = new JsonParser();
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//create tree from JSON
JsonElement rootNode = parser.parse(jsonString);
遍歷樹模型
遍歷樹時,使用相對於根節點的相對路徑獲取每個節點並處理該資料。以下程式碼片段展示瞭如何遍歷樹。
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
示例
在 C:\>GSON_WORKSPACE 中建立一個名為 **GsonTester** 的 Java 類檔案。
檔案 - GsonTester.java
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
public class GsonTester {
public static void main(String args[]) {
String jsonString =
"{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonParser parser = new JsonParser();
JsonElement rootNode = parser.parse(jsonString);
if (rootNode.isJsonObject()) {
JsonObject details = rootNode.getAsJsonObject();
JsonElement nameNode = details.get("name");
System.out.println("Name: " +nameNode.getAsString());
JsonElement ageNode = details.get("age");
System.out.println("Age: " + ageNode.getAsInt());
JsonElement verifiedNode = details.get("verified");
System.out.println("Verified: " + (verifiedNode.getAsBoolean() ? "Yes":"No"));
JsonArray marks = details.getAsJsonArray("marks");
for (int i = 0; i < marks.size(); i++) {
JsonPrimitive value = marks.get(i).getAsJsonPrimitive();
System.out.print(value.getAsInt() + " ");
}
}
}
}
驗證結果
使用 **javac** 編譯器編譯類,如下所示:
C:\GSON_WORKSPACE>javac GsonTester.java
現在,執行 **GsonTester** 以檢視結果:
C:\GSON_WORKSPACE>java GsonTester
驗證輸出。
Name: Mahesh Kumar Age: 21 Verified: No 100 90 85
廣告