Apache Fory JSON
Apache Fory JSON 是 Apache Fory 提供的标准 JSON 序列化模块,可以把 Java 对象转换成 JSON 字符串或 UTF-8 字节数组,也可以从 JSON 还原成 Java 对象。官方当前文档显示,Fory JSON 支持 Java 8+,并提供 fory-json Maven 依赖。([Fory][1])
基础配置
添加依赖
xml
<fory.version>1.6.1</fory.version>
<!-- Apache Fory JSON -->
<dependency>
<groupId>org.apache.fory</groupId>
<artifactId>fory-json</artifactId>
<version>${fory.version}</version>
</dependency>1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
使用方法
java
package io.github.atengk.web;
import io.github.atengk.entity.MyUser;
import io.github.atengk.init.InitData;
import org.apache.fory.json.ForyJson;
import org.apache.fory.reflect.TypeRef;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Map;
/**
* Apache Fory JSON 测试
*
* @author Ateng
* @since 2026-08-31
*/
public class ForyTests {
private static final ForyJson JSON = ForyJson.builder()
.build();
/**
* 测试 Java 对象序列化为 JSON 字符串
*/
@Test
void testToJson() {
MyUser myUser = InitData.getDataList(1).getFirst();
String json = JSON.toJson(myUser);
System.out.println("JSON:");
System.out.println(json);
}
/**
* 测试 JSON 字符串反序列化为 Java 对象
*/
@Test
void testFromJson() {
MyUser myUser = InitData.getDataList(1).getFirst();
String json = JSON.toJson(myUser);
MyUser result = JSON.fromJson(json, MyUser.class);
System.out.println("JSON:");
System.out.println(json);
System.out.println("对象:");
System.out.println(result);
}
/**
* 测试 Java 对象序列化为 JSON 字节数组
*/
@Test
void testToJsonBytes() {
MyUser myUser = InitData.getDataList(1).getFirst();
byte[] bytes = JSON.toJsonBytes(myUser);
System.out.println("JSON 字节数组长度:" + bytes.length);
System.out.println("JSON 字节数组:");
System.out.println(new String(bytes));
}
/**
* 测试 JSON 字节数组反序列化为 Java 对象
*/
@Test
void testFromJsonBytes() {
MyUser myUser = InitData.getDataList(1).getFirst();
byte[] bytes = JSON.toJsonBytes(myUser);
MyUser result = JSON.fromJson(bytes, MyUser.class);
System.out.println("对象:");
System.out.println(result);
}
/**
* 测试 List 泛型对象反序列化
*/
@Test
void testFromJsonList() {
List<MyUser> dataList = InitData.getDataList(3);
String json = JSON.toJson(dataList);
List<MyUser> result = JSON.fromJson(
json,
new TypeRef<List<MyUser>>() {
}
);
System.out.println("JSON:");
System.out.println(json);
System.out.println("List:");
System.out.println(result);
}
/**
* 测试 Map 泛型对象反序列化
*/
@Test
void testFromJsonMap() {
List<MyUser> dataList = InitData.getDataList(3);
Map<Long, MyUser> userMap = dataList.stream()
.collect(java.util.stream.Collectors.toMap(
MyUser::getId,
user -> user
));
String json = JSON.toJson(userMap);
Map<Long, MyUser> result = JSON.fromJson(
json,
new TypeRef<Map<Long, MyUser>>() {
}
);
System.out.println("JSON:");
System.out.println(json);
System.out.println("Map:");
System.out.println(result);
}
}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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128