您的位置:首页 > 移动开发 > Android开发

Android Gson生成、解析json数据

2016-06-28 11:28 369 查看
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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: