首页 > 代码库 > Gson简要使用笔记

Gson简要使用笔记

本文是我在学图灵机器人的时候发现的一篇文章。我将作者的文章搬过来,并修改了一些自己的东西:

原文链接:http://www.cnblogs.com/lichenwei/p/3987429.html


Gson介绍:

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
常用的2个方法:
Gson.toJson(Object src)  --将对象进行json序列化
Gson.fromJson(String json,Class<T>)  --将json字符串反序列化成对象

实体类:

package sn.dolp;

public class MyJson {
	private int id;
    private String name;
    private int age;

    public MyJson(int id, String name, int age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    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 "MyJson [age=" + age + ", id=" + id + ", name=" + name + "]";
    }
}
测试类:

package sn.dolp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class MyGson {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//普通对象转换成json
        MyJson student1=new MyJson(1, "tuzi", 22);
        Gson gson=new Gson();//实例化一个Gson对象
        String info1=gson.toJson(student1);
        System.out.println("普通对象转换成json:"+info1);
        
        //json反序列化(info1)
        MyJson student2=gson.fromJson(info1, MyJson.class);
        System.out.println("json字符串反序列化:"+student2.toString());
        System.out.println();
        
        
        
        //list集合(Student)对象转换成json
        List<MyJson> list=new ArrayList<MyJson>();
        MyJson student3=new MyJson(3, "xiaoming", 22);
        MyJson student4=new MyJson(4, "xiaofang", 22);
        list.add(student3);
        list.add(student4);
        String info2=gson.toJson(list);
        System.out.println("list集合(Student)对象转换成json:"+info2);
        
        //json反序列化(info2)
        List<MyJson> students=gson.fromJson(info2,new TypeToken<List<MyJson>>(){}.getType());//TypeToken是Google提供的一个解析Json数据的类库中一个类(任意类型)
        System.out.println("json字符串反序列化:"+students.toString());
        System.out.println();
        
        
        //list集合(Map)对象转换成json
        List<Map<String,Object>> list2=new ArrayList<Map<String,Object>>();
        Map<String,Object> map1=new HashMap<String, Object>();
        map1.put("id", 5);
        map1.put("name", "小白");
        map1.put("age", 11);
        
        Map<String,Object> map2=new HashMap<String, Object>();
        map2.put("id", 5);
        map2.put("name", "小黑");
        map2.put("age", 13);
        
        list2.add(map1);
        list2.add(map2);
        
        String info3=gson.toJson(list2);
        System.out.println("list集合(Map)对象转换成json:"+info3.toString());
        
        //json反序列化(info2)
        List<Map<String,Object>> list4=gson.fromJson(info3, new TypeToken<List<Map<String,Object>>>(){}.getType());
        System.out.println("json字符串反序列化:"+list4.toString());
	}

}
测试效果:




Gson简要使用笔记