-
Notifications
You must be signed in to change notification settings - Fork 311
/
Copy pathIJSONEngine.java
158 lines (137 loc) · 3.35 KB
/
IJSONEngine.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
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package dev.engine.json;
import java.lang.reflect.Type;
/**
* detail: JSON Engine 接口
* @author Ttt
*/
public interface IJSONEngine<Config extends IJSONEngine.EngineConfig> {
/**
* detail: JSON Config
* @author Ttt
*/
class EngineConfig {
}
// ==========
// = 转换方法 =
// ==========
/**
* 将对象转换为 JSON String
* @param object {@link Object}
* @return JSON String
*/
String toJson(Object object);
/**
* 将对象转换为 JSON String
* @param object {@link Object}
* @param config 配置信息
* @return JSON String
*/
String toJson(
Object object,
Config config
);
// =
/**
* 将 JSON String 映射为指定类型对象
* @param json JSON String
* @param classOfT {@link Class} T
* @param <T> 泛型
* @return instance of type
*/
<T> T fromJson(
String json,
Class<T> classOfT
);
/**
* 将 JSON String 映射为指定类型对象
* @param json JSON String
* @param classOfT {@link Class} T
* @param config 配置信息
* @param <T> 泛型
* @return instance of type
*/
<T> T fromJson(
String json,
Class<T> classOfT,
Config config
);
// =
/**
* 将 JSON String 映射为指定类型对象
* @param json JSON String
* @param typeOfT {@link Type} T
* @param <T> 泛型
* @return instance of type
*/
<T> T fromJson(
String json,
Type typeOfT
);
/**
* 将 JSON String 映射为指定类型对象
* @param json JSON String
* @param typeOfT {@link Type} T
* @param config 配置信息
* @param <T> 泛型
* @return instance of type
*/
<T> T fromJson(
String json,
Type typeOfT,
Config config
);
// ==========
// = 其他方法 =
// ==========
/**
* 判断字符串是否 JSON 格式
* @param json 待校验 JSON String
* @return {@code true} yes, {@code false} no
*/
boolean isJSON(String json);
/**
* 判断字符串是否 JSON Object 格式
* @param json 待校验 JSON String
* @return {@code true} yes, {@code false} no
*/
boolean isJSONObject(String json);
/**
* 判断字符串是否 JSON Array 格式
* @param json 待校验 JSON String
* @return {@code true} yes, {@code false} no
*/
boolean isJSONArray(String json);
// =
/**
* JSON String 缩进处理
* @param json JSON String
* @return JSON String
*/
String toJsonIndent(String json);
/**
* JSON String 缩进处理
* @param json JSON String
* @param config 配置信息
* @return JSON String
*/
String toJsonIndent(
String json,
Config config
);
/**
* Object 转 JSON String 并进行缩进处理
* @param object {@link Object}
* @return JSON String
*/
String toJsonIndent(Object object);
/**
* Object 转 JSON String 并进行缩进处理
* @param object {@link Object}
* @param config 配置信息
* @return JSON String
*/
String toJsonIndent(
Object object,
Config config
);
}