Gson的简单实用

###这篇文章不剖析源码,不写每个方法的使用
###只写怎么在十分钟快速上手Gson
Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等
我曾经写过一片如何使用FastJson

http://blog.csdn.net/github_36731706/article/details/54286818

接下来就写写如何简单的使用Gson,以下是我最常用到的几种情况(欢迎补充)

(Person) 对象转换成JSON字符串
List< Person >转换成JSON字符串
JSON字符串转换成(“{}”开头)对象
JSON字符串(“[]”开头)转换成List对象

我是使用的 Android Studio 在使用之前需要导包

compile 'com.google.code.gson:gson:2.6.2'

Person实体类,age,name,gender这几个简单的属性,get,set,还有toString方法

public class Person {
    private int age;
    private String name;
    private String gender;

    public Person(int age, String name, String gender) {
        this.age = age;
        this.name = name;
        this.gender = gender;
    }
   //此处省略 get  set 方法
   ........................

    @Override
    public String toString() {
        return "age:"+age+",name:"+name+",gender:"+ gender;
    }
}

不管是将一个对象转换成字符串也好还是将一个字符串转换成一个对象也好

第一件事创建Gson对象

 Gson gson=new Gson();

Person对象转换成Json字符串

 //对象转换成Json
        Person person=new Person(20,"张三","男");
        String perToJson=gson.toJson(person);
        Log.d("TAG","perToJson:"+perToJson);

运行结果
这里写图片描述

List对象转换成Json字符串

personList=new ArrayList<>();
        //为list添加数据
        for(int i=0;i<5;i++){
            Person p=new Person(i,"张三"+i,"男");
            personList.add(p);
        }
        String listToJson=gson.toJson(personList);
       Log.d("TAG","listToJson:"+listToJson);

这里写图片描述
由上可以看出
一个对象转成Json字符串是调用的

gson.toJson(Obj obj);

详细的接收参数
这里写图片描述

Json字符串转换成Person对象

这里用到的字符串数据是从上面的运行结果直接拷贝过来的

//Json转成Person
        String jsonToObj="{\"name\":\"张三\",\"gender\":\"男\",\"age\":20}";
        Person jsonPerson=gson.fromJson(jsonToObj,Person.class);
        Log.d("TAG","jsonPerson:"+jsonPerson.toString());

这里写图片描述

Json字符串转换成List对象

 String listJson="[{\"name\":\"张三0\",\"gender\":\"男\",\"age\":0},{\"name\":\"张三1\",\"gende" +
                "r\":\"男\",\"age\":1},{\"name\":\"张三2\",\"gender\":\"男\",\"age\":2},{\"name\":\"张三3\",\"gender\":\"男\",\"age\":3},{\"name\":\"张三4\",\"gender\":\"男\",\"age\":4}]";
        Type type = new TypeToken<ArrayList<Person>>() {
        }.getType();
        List<Person> jsonToList= gson.fromJson(listJson,type);
        for (Person b:jsonToList){
            Log.d("TAG","jsonToList"+b.toString());
        }

这里写图片描述

详细的接收参数
这里写图片描述

一个Json字符串转换成对象是调用

gson.fromJson(str,obj.class/type);

如果是实体类则传入xxx.class,如果是list则先要创建Type对象,然后第二个参数传入Type对象
type对象的创建

Type type = new TypeToken<ArrayList<Person>>() {
        }.getType();

详细的Gson使用请见

http://blog.csdn.net/axuanqq/article/details/51441590

结束 !

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值