通过实现ObjectSerializer与ObjectDeserializer,对自定义枚举进行序列化,目前使用JsonField注解为每个类中的自定义枚举属性配置相关解析器是ok的。但是通过SerializeConfig.getGlobalInstance().put(Enum.class, new CustomEnumSerializer());
ParserConfig.getGlobalInstance().putDeserializer(Enum.class, new CustomEnumDeserializer());
后使用JSON.toJSONString时发现无法生效,这是什么原因?
看了源码,config在注册的时候是按照当前class的类型来作为key,所以配置Enum.class是无效的,那么有没有相关配置可以实现我的需求呢?
3条答案
按热度按时间lbsnaicq1#
控制所有的Enum是一个危险的操作。
还是一个个的注册比较好。
g52tjvyc2#
现在还没有这个支持
bkkx9g8r3#
@wenshao 我也遇到了这个问题,很多时候因为业务需要使用到枚举,但存储的时候想存一个枚举对应的id入数据库,看了源码,发现对于枚举类型的序列化/反序列化不是像其他类型一样放到一个map里统一处理,而是写死在逻辑里