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);
网友评论