目录

Gson - 树模型( Tree Model)

树模型准备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()); 

例子 (Example)

在C:\“GSON_WORKSPACE中创建名为GsonTester的Java类文件。

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

验证结果

使用javac编译器编译类如下 -

C:\GSON_WORKSPACE>javac GsonTester.java 

现在运行GsonTester查看结果 -

C:\GSON_WORKSPACE>java GsonTester 

验证输出。

Name: Mahesh Kumar 
Age: 21 
Verified: No 
100 90 85
↑回到顶部↑
WIKI教程 @2018