fastjson试用

什么是fastjson

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

简单的小例子

pom依赖

1
2
3
4
5
6
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.17</version>
</dependency>

User.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.hundsun.shiro.JsonTest;
/**
* user实体类
*
* @author zeewane
* @date 2016年9月21日 下午3:40:41
*/
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;
}
}

Group.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.hundsun.shiro.JsonTest;
import java.util.List;
import java.util.ArrayList;
/**
* group的实体类
*
* @author zeewane
* @date 2016年9月21日 下午3:42:05
*/
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;
}
}

Test1.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.hundsun.shiro.JsonTest;
import com.alibaba.fastjson.JSON;
/**
* fastjson的测试类,java对象和json格式之间的互转
*
* @author zeewane
* @date 2016年9月21日 下午3:47:20
*/
public class Test1 {
public static void main(String[] args) {
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);
// 将java对象转换成json
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
// 将json重新转换为java对象
Group group2 = JSON.parseObject(jsonString, Group.class);
System.out.println(group2.getName());
for (User user : group2.getUsers()) {
System.out.println(user.getId() + ":" + user.getName());
}
}
}
// output
{"id":0,"name":"admin","users":[{"id":2,"name":"guest"},{"id":3,"name":"root"}]}
admin
2:guest
3:root