Google中Gson的使用解析json数据-------学习篇

时间:2022-07-29 19:24:01

之前写过一篇Gson解析json数据的基本应用,这里不多说,直接上例子.

有兴趣的可以先阅读下之前那篇,这里附上链接: http://www.cnblogs.com/Ant-soldier/p/6322456.html

// json跟set集合之间的转换
        String str = "[{'name':'zhangsan','age':20},{'name':'lisi','age':33}]";
        Gson gson = new Gson();
        Set set = gson.fromJson(str, new TypeToken<Set>() {
        }.getType());
        System.out.println("json转换成的set集合 " + set);
        // 格式化之后的数据
        Gson gson2 = new GsonBuilder().setPrettyPrinting().create();
        JsonParser jp = new JsonParser();
        JsonElement je = jp.parse(str);
        str = gson.toJson(je);
        System.out.println("格式化之后的json数据是" + str);
        boolean jsonFlag;
        try {
            String st = "{'name':'zhan','age':'23'}";
            new JsonParser().parse(st).getAsJsonObject();
            jsonFlag = true;
        } catch (Exception e) {
            jsonFlag = false;
        }
        System.out.println("判读st是否是json数据" + jsonFlag);
        // 获取json中的某个属性,3步 1.获取转换器 2.转换成jsonElement 3.转换成jsonObject
        String ss = "{'name':'zhangsna','age':44}";
        parse = new JsonParser();
        JsonElement element = parse.parse(ss);
        JsonObject object = element.getAsJsonObject();
        System.out.println("输出json数据中的某个属性" + object.get("name").toString() + "  " + object.get("age").toString());
        // 添加属性
        String propertyName = "sex";
        String propertyVlaue = "man";
        object.addProperty(propertyName, new Gson().toJson(propertyVlaue));
        System.out.println("输出json中增加的新数据" + object.toString());
        // 修改json中属性 先删除后添加
        object.remove("sex");
        // 判断json数据中是否存在某个属性
        System.out.println("是否存在属性sex  " + object.has("sex"));
        String propertyVlaue2 = "woman";
        object.addProperty(propertyName, new Gson().toJson(propertyVlaue2));
        System.out.println("输出json中更新之后的新数据" + object.toString());

测试结果如下:

json转换成的set集合 [{name=zhangsan, age=20.0}, {name=lisi, age=33.0}]
格式化之后的json数据是[{"name":"zhangsan","age":20},{"name":"lisi","age":33}]
判读st是否是json数据true
输出json数据中的某个属性"zhangsna"  44
输出json中增加的新数据{"name":"zhangsna","age":44,"sex":"\"man\""}
是否存在属性sex  false
输出json中更新之后的新数据{"name":"zhangsna","age":44,"sex":"\"woman\""}

尊重知识产权:

附上一篇参考链接:   http://www.cnblogs.com/kunpengit/p/4001680.html