Gson用法1

来源:互联网 发布:淘宝买steam礼物 编辑:程序博客网 时间:2024/06/09 13:43
//Person类package Test;public class Person {    private String name;    private int 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;    }    public String toString(){//打印输出用        return name+":"+age;    }}//-测试1-读取简单文件--------------------------package Test;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import com.google.gson.Gson;public class TestGson {    public static void main(String[] args) {        try {            FileInputStream f= new FileInputStream("C:\\temp\\tmp.json");            //也可用单个正斜杠/代替\\。tmp.json的内容为:"name":"zhangsan","age":20}            InputStreamReader r = new InputStreamReader(f,"UTF-8");            BufferedReader b = new BufferedReader(r);            Gson gson = new Gson();            Person p= gson.fromJson(b, Person.class);            System.out.println(p.getName()+",,,"+p.getAge());        } catch (Exception e) {            e.printStackTrace();        }    }}//-测试2-读取集合形式的文件--------------------------//tmp1.json内容 :[{"name":"zhangsan","age":20},{"name":"lisi","age":25}]package Test;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStreamReader;import java.util.List;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class TestGson2 {    public static void main(String[] args) {        // tmp1.json内容 :[{"name":"zhangsan","age":20},{"name":"lisi","age":25}]        BufferedReader b;        try {            b = new BufferedReader(new InputStreamReader(new FileInputStream(                    "C:\\temp\\tmp1.json")));            Gson gson = new Gson();            //TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。            List<Person> ps = gson.fromJson(b, new TypeToken<List<Person>>() {            }.getType());            for (int i = 0; i < ps.size(); i++) {                Person p = ps.get(i);                System.out.println(p.getName()+",,,"+p.getAge());            }        } catch (FileNotFoundException e) {            e.printStackTrace();        }    }}//-测试3-自动生成集合及互相转换--------------------------package Test;import java.util.ArrayList;import java.util.List;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class TestGson1 {    public static void main(String[] args) {        Gson gson = new Gson();        List<Person> persons = new ArrayList<Person>();//生成Person的list        for(int i=0;i<3;i++){            Person p = new Person();            p.setName("name" + i);            p.setAge(i*2);            persons.add(p);        }        String str = gson.toJson(persons);//把Person的集合转为Gson        System.out.println(str);        //运行结果:[{"name":"name0","age":0},{"name":"name1","age":2},{"name":"name2","age":4}]        //Gson转换为Person集合        //TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。        List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());        for(int i=0;i<ps.size();i++){            Person p = ps.get(i);            System.out.print("   " + p.toString());        }    }}
0 0
原创粉丝点击