Gson解析Json

Gson

         Google提供的开源项目Gson,它是一种提供Json解析的类库,它相对于老版本的Json而言,不仅仅在解析速度上,而且在解析所消耗的内存上都有一个质的飞跃,当然,阿里巴巴提供的类库fastgson跟它速度应该不相上下,只是底层的实现不同而已。

         当然在使用前,你的下载好google提供的Google提供的Gson包,当然在使用前,你还得知道一个小知识点,在Gson中我们要定义一个bean类型,这个类型里面封装了一个Gson对象所有的字段值,这样它才可以保存,这个类是必须有的。

         Gson有两个很重要的方法,一个是toJson,一个是fromJson,看名字就知道,ToJson就是将我们的bean类型,转换为我们需要的Json对象。而fromJson就是将我们的已知的Json转换为我们的bean类型。

一、ToJson

        user u=new user("zhangsan",19);

        Gson g=new Gson();

        System.out.println(g.toJson(l));

//输出结果是{name:’zhangsan’age:19}

上述是一种基本的使用用法,通过ToJson,我们可以将一个bean对象保存为一个Json对象。当然,我们也可以通过一个链表,将我们的一个list对象封装到一个Json对象中去。

List<user> l=new LinkedList<user>();

        user u=new user("zhangsan",19);

        l.add(u);

        user u2=new user("zhangsan2",19);

        l.add(u2);

        Gson g=new Gson();

        System.out.println(g.toJson(l));

//输出结果就是[{name:’zhangsan’,age:19},{name:’zhangsan2’,age:19}]

         在这里大家需要注意,对于Json而言,[]代表一个数组,数组中的每一个元素代表一个Json对象,{}代表一个对象,也就是是一个Json对象,当然它还可以实现更复杂的操作,这边就不给大家演示了

二、FromJson

user u=new user();

        Gson g=new Gson();

        u=g.fromJson("{name:'zhangsan',age:12}", user.class);

        System.out.println(u.getName()+"      "+u.getAge());

//输出结果是zhangsan 12

         上述实现了简单的从Json对象中获取数据,并将它保存到一个bean对象中的列子,其中比较重要的就是参数设置,这个例子十分的简单,我们现在创建一个Json它不止包含一组数据,而是包含多组,然后我们通过一个list来保存,在做这个例子之前,我们需要了解一个小知识点。AndroidGson解析中提供了一个特别的类,TypeToken,它实现了获取泛型类型的功能,使用方法Type =TypeToken(泛型){}.gettype();将会返回一个reflect包下的type对象,这就是我们fromJson所需要的type类型

user u=new user();

        Gson g=new Gson();

        String s="[{name:'zhangsan',age:12},{name:'lisi',age:12}]";

        Type lt=new TypeToken<List<user>>(){}.getType();

        List<user> l=g.fromJson(s,lt);

        for(user u1:l){

            System.out.println(u1.getName()+"      "+u1.getAge());

        }

//打印结果是zhangsan 12

//lisi  12

当然通过Gson你还可以解析更加有深层次的,比如几个对象嵌套的类型,使用规则也跟上述的没有多大的差别。所以后续就不给介绍了,在后续附上Gson重要方法。

<T> T àfromJson(String jsonclass<T> clasofT) 

将我们的json数据解析到Bean类型中,T就是我们的类型

String àtoJson(Object o)

将我们的object内容解析成为一个Json对象

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值