允许自定义JsonSerializer中的NULL映射值

问题描述 投票:0回答:1

我在spring中有一个全局对象映射器,其属性设置如下:

getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

这是正常工作,并在序列化时排除所有空值。

但我有一个自定义序列化程序,用于将私有Map<String, Object> data = new LinkedHashMap<>()作为成员变量。这个映射的键具有空值,我想在输出中包含这些值。类级别或成员级别@JsonInclude不起作用。尝试覆盖isEmpty并始终返回false,但它不起作用。

自动包含NULL映射值,直到Jackson 2.5,但这在升级到2.9+后开始发生。任何帮助,将不胜感激。

spring jackson2 jackson-databind
1个回答
0
投票

基本上你要找的只是一个类的自定义串行器吗?你可以找到它如何实现here

然后您可以将序列化程序注册到您的班级

@JsonSerialize(using = CustomSerializer.class)
class YourClass{

这会将自定义序列化程序注册到您感兴趣的类中,这样您也可以添加空值。

© www.soinside.com 2019 - 2024. All rights reserved.