开发手册 欢迎您!
软件开发者资料库

Gson - 树模型

Gson树模型 - 从基本概念到高级概念的简单易学步骤学习Gson,包括概述,环境设置,第一个应用程序,Gson类,对象序列化,数据绑定,对象数据绑定,树模型,流API,序列化示例,数组,集合,泛型,序列化内部类,静态嵌套,非静态嵌套类,具有嵌套静态和非静态类的内部类,自定义类型适配器,自定义序列化,反序列化,空对象,版本控制支持,从序列化中排除字段。

树模型准备JSON文档的内存树表示.它构建了一个JsonObject节点树.它是一种灵活的方法,类似于XML的DOM解析器.

从JSON创建树

JsonParser提供指向该节点的根节点的指针读完JSON后的树.根节点可用于遍历整个树.请考虑以下代码片段以获取所提供的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:\>中创建名为 GsonTester 的Java类文件; GSON_WORKSPACE.

文件和减号; 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