• 支持注解、支持全类型序列化
- 基本用法:
• 定义实体类
• 根据需要可以将JSON 生成单个实体或列表实体集合
- 代码演示:
使用 FastJson 解析 JsonObject
使用 FastJson 解析 JsonArray
使用 FastJson 将实体转为JSON 数据
二、实例解析
1. Gson的基本用法
Gson有两个重要的方法,一个是 tojson()
,另一个是 fromjson()
。
tojson()
:将bean里面的内容转换为json内容。
User user=new User(“zhangsan”,19);
Gson gson=new Gson();
System.out.println(gson.toJson(user));
//打印结果是{“name”:“zhangsan”,“age”:19}
当然它还可以承担一些复杂的操作,比如通过集合插入一组数据。
List list = new LinkedList();
User u1 =new User(“zhangsan”,19);
list.add(u1);
User u2=new User(“lisi”,25);
list.add(u2);
Gson gson = new Gson();
System.out.println(gson.toJson(list));
//打印结果是[{“name”:“zhangsan”,“age”:19},{“name”:“lisi”,“age”:25}]
//注意,对于Json而言,[]代表数组,{}代表一个对象
当然它还可以实现更复杂的对象,比如在一个Json对象中再嵌套一个Json对象。
fromjson()
:从我们的Json对象封装出一个一个的bean对象。
User u = new User();
Gson gson = new Gson();
u = gson.fromJson(“{name:‘zhangsan’,age:12}”, user.class);
System.out.println(u.getName()+" "+u.getAge());
//打印结果是zhangsan 12
如果你的Json里面不止一个对象,那么你就得使用一个集合来装.
我们这里模拟一个list来装的例子,在使用list装的过程中我们会使用到一个工具类 TypeToken
.
通过它我们可以 获取一个泛型的数据类型,使用方法十分简单,TypeToken<泛型>(){}.gettype()
即可,返回一个Type
类型,这就是fromjson()
所需要的type类型,来自于reflect包
。
User user = new User();
Gson gson = new Gson();
String str = “[{name:‘zhangsan’,age:12},{name:‘lisi’,age:13}]”;
// 获取一个泛型的数据类型
Type type = new TypeToken<List>(){}.getType();
List list = gson.fromJson(str , type);
for(user u : list){
System.out.println(u.getName() + " " + u.getAge());
}
//打印结果是zhangsan 12
//lisi