http://zhidao.baidu.com/link?url=buRL8gjIT75xDZgYJG7SwyB5EzES8cgiNPDCPLNMPXLVYyNR9tPbklmxOYWVzmTT0G1V1ewdcLmaTvTwnqTSF9ZS_hl8gC_Ed4iNdYD1XYu
看fastjson源码,SerializeWriter
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);
}
可以看出SerializeWriter在初始化的时候,features不要设置SerializerFeature.WriteEnumUsingToString
因为JSON.DEFAULT_PARSER_FEATURE是enable了SerializerFeature.WriteEnumUsingToString,也就是说是读枚举的value值而不是int值