我们在用@ResponseBody
返回实体对象可以用spring mvc
自动帮我们转化成json串
但是当实体中包含了枚举类型的属性的时候怎么办,我这里使用的是fastjson
,他默认是转换成了字符串。
根据我上一篇博文的解决方案,我们这里自定义一个FastJsonHttpMessageConverter
fastjson序列化枚举属性
我的实体类里面有一个属性是枚举类型的,但是我在转换的时候我不希望取它的name,而是它的索引值0,1,2,3,搜索一番后发现这个回答
fastjson enum 枚举 反序列化
为了方便大家查看,我把内容贴过来
看fastjson源码,SerializeWriter
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 public void writeEnum( Enum < ?>value, char c )
{
if ( value == null )
{
writeNull();
write( ',' );
return;
}
if ( isEnabled( SerializerFeature.WriteEnumUsingToString ) )
{
if ( isEnabled( SerializerFeature.UseSingleQuotes ) )
{
write( '\'' );
write( value.name() );
write( '\'' );
write( c );
} else {
write( '\"' );
write( value.name() );
write( '\"' );
write( c );
}
return;
}
writeIntAndChar( value.ordinal(), c );
}