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