Java 如何使ObjectMapper跳过空对象的序列化?

Java 如何使ObjectMapper跳过空对象的序列化?,java,serialization,jackson,objectmapper,Java,Serialization,Jackson,Objectmapper,原因是我的对象的消费者是一个可怜的、遗留的消费者,他们遭受空对象的折磨,并抛出NPEs,解决这个问题的唯一方法就是在我这边解决问题 我的应用程序需要跳过空对象的序列化 class TopObject { NestedObject1 object1; NestedObject2 object2; } 默认情况下,如果object1和object2都为空,则ObjectMapper将toobject序列化为{}。相反,我必须从序列化中排除对象 请注意 objectMapper.setSer

原因是我的对象的消费者是一个可怜的、遗留的消费者,他们遭受空对象的折磨,并抛出
NPE
s,解决这个问题的唯一方法就是在我这边解决问题

我的应用程序需要跳过空对象的序列化

class TopObject {
  NestedObject1 object1;
  NestedObject2 object2;
}
默认情况下,如果
object1
object2
都为空,则
ObjectMapper
toobject
序列化为
{}
。相反,我必须从序列化中排除对象

请注意

objectMapper.setSerializationInclusion(Include.NON_NULL);
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
在这种情况下不要帮忙

我认为必须有一个相对简单的解决办法


您能帮我整理一下吗?

为什么不能使用Include.NON\u NULL/Include.NON\u EMPTY?它们不适用于内存,或者对象可以由非NULL的嵌套对象组成为什么不在序列化之前过滤掉元素?您希望将关键信息/逻辑委托给JSON映射器,一个简单的
objects.filter(TopObject::isNotEmpty)
可以更清楚地了解正在发生的事情,并允许您为其他开发人员留下评论,说明您为什么要这样做