fastjson 使用SerializeConfig与ParserConfig配置自定义解析器无效

bjg7j2ky  于 2021-11-27  发布在  Java
关注(0)|答案(3)|浏览(832)

通过实现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是无效的,那么有没有相关配置可以实现我的需求呢?

lbsnaicq

lbsnaicq1#

控制所有的Enum是一个危险的操作。
还是一个个的注册比较好。

g52tjvyc

g52tjvyc2#

现在还没有这个支持

bkkx9g8r

bkkx9g8r3#

@wenshao 我也遇到了这个问题,很多时候因为业务需要使用到枚举,但存储的时候想存一个枚举对应的id入数据库,看了源码,发现对于枚举类型的序列化/反序列化不是像其他类型一样放到一个map里统一处理,而是写死在逻辑里

相关问题