fastjson 使用教程
2014-12-08 22:56
537 查看
fastjson 是阿里的开源项目,具网上的说法 fastjson 的解析速度是 Gson 的6倍,体积小,而且开源。
项目地址:
https://github.com/alibaba/fastjson
一般 json 解析器我们都用到的是序列化和反序列化。
JSON.toJSONString
parseObject。
下面举个例子来看看 fastjson 的具体用法:
上面的代码输入结果如下:
反序列化操作如下:
有时候我们发送一个 http 请求,得到一个 json 字符串,我们需要根据其中的某个字段来确定反序列化的类型
例如:
成功时的 json 字符串
失败时的 json 字符串
我们先获取 "result" 字段中的 message, 然后再确定反序列化的类型:
项目地址:
https://github.com/alibaba/fastjson
一般 json 解析器我们都用到的是序列化和反序列化。
JSON.toJSONString
parseObject。
下面举个例子来看看 fastjson 的具体用法:
public class User { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
public class Group { private Long id; private String name; private List<User> users = new ArrayList<User>(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } }
Group group = new Group(); group.setId(0L); group.setName("admin"); User guestUser = new User(); guestUser.setId(2L); guestUser.setName("guest"); User rootUser = new User(); rootUser.setId(3L); rootUser.setName("root"); group.getUsers().add(guestUser); group.getUsers().add(rootUser); String jsonString = JSON.toJSONString(group); System.out.println(jsonString);
上面的代码输入结果如下:
{"id":0,"name":"admin","users":[{"id":2,"name":"guest"},{"id":3,"name":"root"}]}
反序列化操作如下:
Group group = JSON.parseObject(jsonString, Group.class);
有时候我们发送一个 http 请求,得到一个 json 字符串,我们需要根据其中的某个字段来确定反序列化的类型
例如:
成功时的 json 字符串
{ "api": "com.xx.get.userinfo", "v": "1.0", "result": { "code": 200, "message": "success" }, "data": { "age": 18, "name": "qingtianzhu", "girl_friends": [ "xiaoli", "fengjie", "lucy" ] } }
失败时的 json 字符串
{ "api": "com.xx.get.userinfo", "v": "1.0", "result": { "code": 500, "message": "fail" }, "data": { "errorCode": 1, "detail": "qingtianzhu" } }
我们先获取 "result" 字段中的 message, 然后再确定反序列化的类型:
// 获取 String String version = JSON.parseObject(jsonStr).getString("v"); // 获取 JsonObject JSONObject jo = JSON.parseObject(jsonStr).getJSONObject("result"); String msg = jo.getString("message");
相关文章推荐
- spring boot新手教程之使用FastJson解析JSON数据以及解决返回中文乱码问题
- android fastjson使用方法 fastjson教程
- FastJson Jackson Gson使用教程
- springBoot系列教程05:fastjson的集成、配置及使用
- spring boot最新教程(四):返回json数据以及集成fastjson的使用
- Json解析教程(四.FastJson 的使用)
- json教程从入门到使用
- 实用ExtJS教程100例-011:ExtJS Form 使用JSON数据赋值和取值
- json2.js 使用详细教程
- fastjson使用方法实例
- FastJson关于java的使用
- 使用fastjson导致主键自增列错误 Failed to insert row into content:
- php 中序列化和json使用介绍_PHP教程
- json 使用详细教程
- 阿里巴巴 - FastJson使用简介
- 阿里巴巴 - FastJson使用简介
- Flexigrid系列使用教程(二)JSON数据生成代码
- JSON数据之使用Fastjson进行解析(一)
- 使用Fastjson序列化与反序列化对象
- json-smart 使用示例(推荐fastjson)