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 Gson对象数据绑定 Gson 流