一、导包 gson-2.3.1.jar
二、写实体类:
/**
* Person实体类
*/
public class Person {
//用户名
private String userName;
//年龄
private int age;
//get、set方法
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//空参构造
public Person() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public Person(String userName, int age) {
super();
this.userName = userName;
this.age = age;
}
//toString方法
@Override
public String toString() {
return "Person [userName=" + userName + ", age=" + age + "]";
}
}
三、实体类和JSON 字符串之间的转换
public class Test {
public static void main(String[] args) {
//创建Gson对象
Gson gson=new Gson();
//将JSON 字符串转换成指定的类型对象
String json = "{\"userName\":\"Tom\",\"age\":20}";
Person person = gson.fromJson(json, Person.class);
System.out.println("将 JSON 字符串转换成指定的类型对象: "+person.toString());
//将目标对象转换成 JSON 格式的字符串
String json_Person = gson.toJson(person);
System.out.println("将目标对象转换成 JSON 格式的字符串: "+json_Person);
//将集合对象转换成 JSON 格式的字符串
ArrayList<Person> persons = new ArrayList<Person>();
Collections.addAll(persons, new Person("tom", 12), new Person("mary", 10));
String json_list = gson.toJson(persons);
System.out.println("将集合对象转换成 JSON 格式的字符串: "+json_list);
//将JSON 格式字符串转换为带泛型的集合对象
List<Person> retList = gson.fromJson(json_list, new TypeToken<List<Person>>() {}.getType());
for (Person p : retList) {
System.out.println("将JSON 格式字符串转换为带泛型的集合对象 "+p.toString());
}
}
}