是否可以忽略@JsonSerialize 注释?

Bar*_*cki 5 java serialization json jackson

是否可以使用 Jackson 序列化对象,但忽略使用注释注册的自定义序列化程序@JsonSerialize(using = MyCustomSerializer.class)

理由:我想使用 Jackson 将我的对象转换为 Map,使用com.fasterxml.jackson.databind.ObjectMapper.convertValue(object,Map.class). 目前它不起作用,因为我的班级有自定义序列化程序(@JsonSerialize),但错过了反序列化程序。我需要自定义序列化器,我真的不需要也不想写反序列化器。

ObjectMapper.convertValue 使用我的序列化然后反序列化失败。

我想让 ObjectMapper 忽略@JsonSerialize 并使用默认的序列化逻辑。杰克逊有可能吗?

ing*_*ous 4

这是完全有可能的。您可以在每个 ObjectMapper 的基础上禁用注释,如下所示:

ObjectMapper mapper = new ObjectMapper();
mapper.disable(MapperFeature.USE_ANNOTATIONS);
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请查看github上的文档或查看baeldung上的示例。

  • 有没有其他方法作为此解决方案禁用所有注释。 (2认同)