package com.datong.gsondemo;
/**
* Created by liyongjian on 2016/6/28.
*/
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
二、
HashMap<String, String> map = new HashMap<>();
map.put("key", "value");
Log.e("TAG", gson.toJson(map));//{"key":"value"}
map.clear();
map.put("key0", "value0");
map.put("key1", "value1");
map.put("key2","value2");
Log.e("TAG",gson.toJson(map));//{"key2":"value2","key0":"value0","key1":"value1"}
/**
* 将person对象转为json
*/
Person person = new Person("Andy",3);
String personJson = gson.toJson(person);
Log.e("TAG", "person" + personJson);//person{"age":3,"name":"Andy"}
/**
* 将List<Person> 转为JsonArray
*/
List<Person> list = new ArrayList<>();
for(int i = 0; i < 3; i++){
list.add(new Person("Andy_" + i, i));
}
String personJsonArray = gson.toJson(list);
Log.e("TAG", "list " + personJsonArray);//list [{"age":0,"name":"Andy_0"},{"age":1,"name":"Andy_1"},{"age":2,"name":"Andy_2"}]
/**
* 将personJson还原成对象
*/
Person person1 = gson.fromJson(personJson,Person.class);
Log.e("TAG",person1.getName() + " " + person1.getAge());//person1: Andy 3
/**
* 将personJsonArray转换成List<Person>
*/
Type listType= new TypeToken<ArrayList<Person>>(){}.getType();
List<Person> persons = new ArrayList<>();
persons = gson.fromJson(personJsonArray,listType);
for (Person p : persons){
Log.e("TAG", p.getName() + " " + p.getAge());// Andy_0 0 Andy_1 1 Andy_2 2
}