GOSN 学习笔记

2016-06-05  本文已影响182人  豆豆先生的小屋

GSON是GOOGLE提供的用来在javaBean和JSON数据之间进行转换的一个类库,要使用这个类库的话需要导入gson.jar
这是下载地址:GSON DOWNLOAD

JavaBean 转换为JSON

下面是jabaBean的结构

public class Person {
    private String name;
    private int age;
    @Override
    public String toString() {
        return this.name+":"+this.age;
    }
}

只需要几行代码就可以转换成功了

Person p = new Person("kati",33);
Gson gson = new Gson();
String jsonData = gson.toJson(p);
System.out.println(jsonData);

{"name":"kati","age":33}

你没看错,就是这么简单!!!

JSON转换为JavaBean

依然如此简单

String jsonData = "{'name':'Cat','age':21}";
Person p = gson.fromJson(jsonData, Person.class);

上面都是单个javaBean和JSON 之间的转换
下面我们来看看对象集合与JSON之间的转换

javaBean数组转JSON

首先来声明一个对象数组

Person p1 = new Person("kati",33);
Person p2 = new Person("Scoot",13);
Person p3 = new Person("Andy",34);
Person[] pArray = {p1,p2,p3};
String jsonData = gson.toJson(pArray);
System.out.println(jsonData);
[{"name":"kati","age":33},{"name":"Scoot","age":13},{"name":"Andy","age":34}]
List集合转换为JSON
List<Person> pList = new ArrayList<Person>();
pList.add(p1);
pList.add(p2);
pList.add(p3);
String jsonData = gson.toJson(pList);
System.out.println(jsonData);
[{"name":"kati","age":33},{"name":"Scoot","age":13},{"name":"Andy","age":34}]
JSON转换为数组
String jsonData = "[{"name":"kati","age":33},{"name":"Scoot","age":13},{"name":"Andy","age":34}]";
Person[] persons = gson.fromJson(jsonData, Person[].class);
//此时可以把调用Arrays的静态方法将数组转化为list集合
//List<Person>pList = Arrays.asList(persons);
JSON转换为集合
//导包的时候会有很多个Type包 不要导错了 当让导错了IDE会自动报错的
//import com.google.gson.Gson;
//import com.google.gson.reflect.TypeToken;
Type listType = new TypeToken<ArrayList<Person>>(){}.getType();
List<Person>persons = gson.fromJson(jsonData, listType);
上一篇下一篇

猜你喜欢

热点阅读