您的位置:首页 > Web前端 > JavaScript

fastjson 使用教程

2014-12-08 22:56 537 查看
fastjson 是阿里的开源项目,具网上的说法 fastjson 的解析速度是 Gson 的6倍,体积小,而且开源。

项目地址:

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");


  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: