Gson樹模型

樹模型準備JSON文檔的記憶體樹表示。 它構建了一個JsonObject節點樹。 這是一種靈活的方法,類似於XML的DOM解析器。

從JSON創建樹

在讀取JSON之後,JsonParser提供了一個指向樹的根節點的指針。根節點可以用來遍曆整個樹。 考慮下麵的代碼片段來獲取提供的JSON字串的根節點。

//Create an JsonParser instance
JsonParser parser = new JsonParser();

String jsonString =
"{\"name\":\"Maxsu\", \"age\":26,\"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());

示例

創建一個名為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\":\"Maxsu\", \"age\":26,\"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() + " ");
         }
      }
   }
}

執行上面示例代碼,得到以下結果 -

Name: Maxsu
Age: 26
Verified: No
100 90 85

上一篇: Gson對象數據綁定 下一篇: Gson數據流