I)、Gson 的 节点对象:
JsonElement : 所有的节点 都是 JsonElement 对象.
JsonPrimitive : 基本的 数据类型的 节点 对象, JsonElement 的子类.
JsonNull : 代表 空节点 对象,即 有 key,value 为空,JsonElement 的子类.
JsonObject : 对象 数据类型的 节点 对象JsonElement 的 子类.
JsonArray : 数组 数据类型的 节点 对象, JsonElement 的 子类.
II)、JsonElement 的取值:
JsonPrimitive : value 的 取值对应 java 的 int,double,float,long,short,boolean,char,byte,String,BigDecimal,BigInteger,Number 。
JsonObject : value 的取值对应 java 的 Object 对象.
JsonArray : value 的取值对应 java 的 List 及其子类对象.
//节点解析
//解析步骤
/*1,获得解析器
*2,获得根节点元素
*3,根据文档判断根节点属于什么类型的Gson节点对象
*4.取得节点下的某个节点的value
* */
//创建json字符串
String json = "{\"id\":003,\"data\":{\"name\":\"zs\",\"age\":18,\"hobby\":true}}";
//获得解析器
JsonParser parser = new JsonParser();
//获取根节点元素
JsonElement element = parser.parse(json);
//根据文档判断跟节点属于什么类型的Gson节点对象
JsonObject root = element.getAsJsonObject();
//取得节点下的某个节点的value
//获取id的值,id的值为基本数据类型节点
JsonPrimitive idJson = root.getAsJsonPrimitive("id");
System.out.println(idJson);
//获得data节点的值,data节点为Object数据节点
JsonObject dataJson = root.getAsJsonObject("data");
//将节点上的数据转换为对象
User user = new Gson().fromJson(dataJson,User.class);
System.out.println(user);
}