gson框架的使用
2016-05-27 16:04
281 查看
GSON
GSON 是Google的一个json解析框架,和传统的json解析相比,有着明显的优势。关于基本的JSON解析,你可以看下面这篇文章
Android JSON的解析
API引入
本文使用的gson-2.3.1.jar基本数据类型和json字符串的转换
通过toJson()将基本数据类型转换成json字符串
public class Main { public static void main(String[] args) { int[] A = new int[] { 1, 2, 3, 4, 5 }; String[] days = new String[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; Gson gson = new Gson(); String numsJson = gson.toJson(A); System.out.println(numsJson); // output : [1,2,3,4,5] String daysJson = gson.toJson(days); System.out.println(daysJson); // output : ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"] } }
// 二维数组转换成json int[][] B = new int[][]{ {1,2,3}, {4,5,6}, {7,8,9} }; System.out.println(gson.toJson(B)); //[[1,2,3],[4,5,6],[7,8,9]]
使用fromJson()将json字符串的数据成对象
// 第二个参数填对象类型 int[] arr = gson.fromJson(numsJson, int[].class);
java Bean 对象与json的转换
java Bean
class Person { private String name; private int age; private String addr; 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 getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public Person(String name, int age, String addr) { super(); this.name = name; this.age = age; this.addr = addr; } public Person() { } }
java Bean 转换成json
Person p = new Person("ytr", 21, "hebust"); String perJson = gson.toJson(p); System.out.println(perJson); // output {"name":"ytr","age":21,"addr":"hebust"}
json转换成javaBean
Person p2 = gson.fromJson(perJson, Person.class); System.out.println(p2); //output Person [name=ytr, age=21, addr=hebust]
集合与json的转换
list 数据
private static List<Person> list = new ArrayList<>(); // init data static { list.add(new Person("a1", 21, "hebust")); list.add(new Person("b2", 22, "pku")); list.add(new Person("c3", 23, "tsinghua")); }
集合转换成json
String listJson = gson.toJson(list); System.out.println(listJson); // [{"name":"a1","age":21,"addr":"hebust"},{"name":"b2","age":22,"addr":"pku"},{"name":"c3","age":23,"addr":"tsinghua"}]
json 转换成集合
List<Person> persons = gson.fromJson(listJson, ArrayList.class); System.out.println(persons); //[{name=a1, age=21.0, addr=hebust}, {name=b2, age=22.0, addr=pku}, {name=c3, age=23.0, addr=tsinghua}]
GSON 对泛型的处理
List<Person> persons = gson.fromJson(listJson, new TypeToken<List<Person>>() { }.getType());
使用typetoken,可以使编译器获取正确的类型
相关文章推荐
- 柴俊理金:5月27号黄金,宁贵沥青操作建议
- MSSQL事务与视图
- 关于在extjs中使用column布局,不能显示textfield的标签(fieldLabel)解决方法
- 初学linux命令-mkdir、rm、rmdir、mv
- jquery动态添加数据,数据分页
- 获取汉字拼音首字母
- 14.5 wait和notify方法 停止线程
- AFNetworking 新版本3.0的迁移
- 期末设计(十三周)
- 刷题记录20160527
- 如何利用c++编写不能被继承、但可以在类外定义对象的类
- 列出100个质数
- Java 教程
- mac 隐藏Dock
- 线程池实例:使用Executors和ThreadPoolExecutor
- Less相关
- Android画图Path的使用
- 14.4 线程的通讯
- Delphi之窗
- sql server 2012 数据库日志文件过大,怎么缩小?