Andy 胡

导航

Json3:使用gson做节点解析

Gson的节点对象:
JsonElement : 所有的节点 都是 JsonElement 对象.
JsonPrimitive : 基本的数据类型的节点对象,JsonElement的子类
JsonNull : 代表空节点对象,即有key,value为空,JsonElement的子类
JsonObject : 对象数据类型的节点对象, JsonElement的子类
JsonArray : 数组数据类型的节点对象, JsonElement的子类

 

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;

public class Json节点解析 {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();

        sb.append("{");
        sb.append(" 'flag':true,");
        sb.append(" 'data':");
        sb.append("    {");
        sb.append("       'name':'典韦',");
        sb.append("       'Power':98");
        sb.append("    }");
        sb.append("}");

        String json = sb.toString();
        // 【1.获得解析者】
        JsonParser parser = new JsonParser();

        JsonElement element = parser.parse(json);
        // 【2.获得根节点元素】
        JsonObject root = element.getAsJsonObject();

        // 获得flag节点的值, flag节点为基本数据节点
        JsonPrimitive flagJson = root.getAsJsonPrimitive("flag");

        // 【3.取得节点下的某个节点的value】
        // 基本节点取值
        boolean flag = flagJson.getAsBoolean();

        // 获得 data 节点的值,data节点为Object数据节点
        JsonObject dataJson = root.getAsJsonObject("data");
        // 将节点上的数据转换为对象
        People p = new Gson().fromJson(dataJson, People.class);
        System.out.println(p.getName());
    }
}

运行结果:

典韦

 

posted on 2017-02-07 21:27  talkwah  阅读(378)  评论(0编辑  收藏  举报