zoukankan      html  css  js  c++  java
  • Google中Gson的使用解析json数据-------学习篇

    之前写过一篇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

  • 相关阅读:
    【AppScan心得】IBM Rational AppScan 无法记录登录序列
    tomcat记录XForwardedFor字段中的远程IP
    【AppScan深入浅出】修复漏洞:会话标识未更新(中危)
    用java在Windows控制台输出utf8字符
    【图解漏洞】图解跨站脚本攻击(XSS)原理
    【图解漏洞】图解跨站请求伪造(CSRF)原理(之二)
    雅克比矩阵(Jacobian Matrix)在正运动学中的应用
    游戏物理引擎之静态碰撞
    万向节死锁(Gimbal Lock)
    旋转矩阵(Rotate Matrix)的性质分析
  • 原文地址:https://www.cnblogs.com/Ant-soldier/p/6323202.html
Copyright © 2011-2022 走看看