Gson-JSON树模型
Gson可以把JSON数据在内存中构建成为一个叫JsonObject的树模型对象。这是一种灵活的方法,类似于XML的DOM解析器。
1 创建JSON树模型
JsonParser在读取JSON数据后提供指向树的根节点。根节点可用于遍历整个树。以下代码,用于获取JSON字符串的根节点。
//创建JsonParser对象
JsonParser parser = new JsonParser();
String jsonString =
"{\"name\":\"eric\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
//创建Json树模型
JsonElement rootNode = parser.parse(jsonString);
2 遍历树模型的语法
在遍历树并处理数据时,使用到根节点的相对路径获取每个节点。以下代码片段展示了如何遍历树。
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());
3 遍历树模型的示例
3.1 编写核心类
MainApp:
package com.yiidian.gson;
import com.google.gson.*;
/**
* 一点教程网 - http://www.yiidian.com
*/
public class MainApp {
public static void main(String args[]) {
String jsonString =
"{\"name\":\"eric\", \"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() + " ");
}
}
}
}
3.2 运行测试
热门文章
优秀文章