Skip to content

Commit bb43119

Browse files
committed
add:JsonShape文档
1 parent 6619b9c commit bb43119

File tree

1 file changed

+82
-1
lines changed

1 file changed

+82
-1
lines changed

doc/manual/json/annotations.man

Lines changed: 82 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
#author: wendal(wendal1985@gmail.com)
44
-------------------------------------------------------------------------------------------------
55

6-
共3个注解
6+
共4个注解
77

88
|| {#080;@JsonField} || 属性或方法 || 控制是否忽略该属性,控制输出及日期格式 ||
99
|| {#080;@JsonIgnore} || 属性或方法 || 专门用于控制忽略特定数值 ||
1010
|| {#080;@ToJson} || 方法 || 自定义本对象转换为Json字符串的逻辑||
11+
|| {#080;@JsonShape} || 枚举类 || 用于控制枚举类型的转换格式 ||
1112

1213
---------------------------------------------------------------------------
1314
JsonField的ignore配置详解
@@ -175,6 +176,86 @@ ToJson注解
175176
}
176177
}}}
177178

179+
----------------------------------------------
180+
181+
JsonShape注解
182+
183+
这个注解可以让你控制枚举类型的输出格式, 某些情况下对于复杂枚举对象我们需要输出枚举的属性字段就可以使用这个注解.
184+
185+
注解值为Type类型枚举,有ORDINAL, NAME, OBJECT
186+
187+
ORDINAL 输出枚举的有ORDINAL
188+
189+
NAME 输出枚举的NAME
190+
191+
OBJECT 对于简单枚举类说输出的是枚举的NAME,因为我们也不知道怎么把简单枚举转换成object造型;对于复杂枚举将输出枚举的详细属性
192+
193+
具体使用请参考一下测试用例
194+
195+
{{{<Java>
196+
@JsonShape(Type.OBJECT)
197+
public static enum TT {
198+
199+
T("t", 1);
200+
String name;
201+
202+
int index;
203+
204+
/**
205+
* @param name
206+
* @param index
207+
*/
208+
private TT(String name, int index) {
209+
this.name = name;
210+
this.index = index;
211+
}
212+
213+
/**
214+
* @return the name
215+
*/
216+
public String getName() {
217+
return name;
218+
}
219+
220+
/**
221+
* @param name
222+
* the name to set
223+
*/
224+
public void setName(String name) {
225+
this.name = name;
226+
}
227+
228+
/**
229+
* @return the index
230+
*/
231+
public int getIndex() {
232+
return index;
233+
}
234+
235+
/**
236+
* @param index
237+
* the index to set
238+
*/
239+
public void setIndex(int index) {
240+
this.index = index;
241+
}
242+
243+
}
244+
245+
@JsonShape
246+
public static enum K {
247+
K, T
248+
}
249+
250+
@Test
251+
public void test_enum() {
252+
assertEquals("\"K\"", Json.toJson(K.K));
253+
String expected = "{\n" + " \"name\": \"t\",\n" + " \"index\": 1\n" + "}";
254+
assertEquals(expected, Json.toJson(TT.T));
255+
}
256+
257+
}}}
258+
178259
----------------------------------------------
179260
虚拟属性
180261

0 commit comments

Comments
 (0)