Gson - Mô hình cây

Mô hình cây chuẩn bị một biểu diễn cây trong bộ nhớ của tài liệu JSON. Nó xây dựng một cây gồm các nút JsonObject. Đây là một cách tiếp cận linh hoạt và tương tự như trình phân tích cú pháp DOM cho XML.

Tạo cây từ JSON

JsonParser cung cấp một con trỏ tới nút gốc của cây sau khi đọc JSON. Root Node có thể được sử dụng để duyệt toàn bộ cây. Hãy xem xét đoạn mã sau để lấy nút gốc của Chuỗi JSON được cung cấp.

//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);

Mô hình cây đi ngang

Nhận từng nút bằng cách sử dụng đường dẫn tương đối đến nút gốc trong khi đi qua cây và xử lý dữ liệu. Đoạn mã sau đây cho biết cách bạn có thể đi qua một cái cây.

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());

Thí dụ

Tạo một tệp lớp Java có tên GsonTester trong C: \> GSON_WORKSPACE.

File − 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() + " ");  
         } 
      } 
   }   
}

Xác minh kết quả

Biên dịch các lớp bằng cách sử dụng javac trình biên dịch như sau -

C:\GSON_WORKSPACE>javac GsonTester.java

Bây giờ chạy GsonTester để xem kết quả -

C:\GSON_WORKSPACE>java GsonTester

Xác minh kết quả đầu ra.

Name: Mahesh Kumar 
Age: 21 
Verified: No 
100 90 85