Gson用法1
2015-07-01 17:09
344 查看
//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()); } } }
相关文章推荐
- 进程切换
- Android编译相关
- Python中使用PhantomJS抓取Javascript网页数据
- [Objective-C] 为什么Objective-C不支持类的私有方法
- oracle 监控执行的sql语句
- js的封装库css
- MQTT的学习研究(八)基于HTTP DELETE MQTT 订阅消息服务端使用
- Java新技术---线程学习之Callable与Future的应用
- Ubuntu常用的APT命令参数(针对apt-get update和upgrade)
- matlab 中的 S-Function的用法(C语言)
- redis学习小结
- 进程间通信第一课--管道
- MQTT的学习研究(七)基于HTTP POST MQTT 发布消息服务端使用
- input()和raw_input()区别
- 适配较好的写法
- 题目1008:最短路径问题
- iOS开发之iOS程序偏好设置(Settings Bundle)的使用
- BaiduMap---百度地图官方Demo之基本地图功能(创建一张百度地图并管理地图的生命周期)
- 操作远程计算机文件
- iOS开发笔记24--第三方库JSONModel的使用