当前位置: 首页 > 知识库问答 >
问题:

在序列化期间忽略空集合

吕俊才
2023-03-14

我读过@JsonInclude这样的问题来忽略空值。这适用于实体中的常规字段,但不适用于集合。如果实体中的集合为空,Json序列化会给出一个空值。

如何对集合进行等效忽略?

共有2个答案

姜嘉赐
2023-03-14

从杰克逊2号开始。x它提供了@JsonInclude注释,在序列化过程中,该注释根据类的值控制类整体或单个字段的序列化。它将以下注释识别为:

代码。NON_NULL表示只应序列化非NULL属性。

代码。NON_EMPTY表示只应序列化非null和非空属性。这实际上是 Include的超集。非空

因此,在一个集合中Include。非空的将像

@JsonInclude(Include.NON_EMPTY)
private Collection field;

或者你可以把它放在课堂上影响整个模型

@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Foo {
}
马天逸
2023-03-14

试试注释

@JsonInclude(Include.NON_EMPTY)
private Collection field;
 类似资料:
  • 问题内容: 在反序列化过程中(据我了解,这是将JSON数据转换为Java对象的过程),我如何告诉Jackson,当它读取不包含数据的对象时,应该忽略它吗? 我正在使用Jackson 2.6.6和Spring 4.2.6 我的控制器收到的JSON数据如下: 问题是对象“ containedObject”按原样解释,并且正在实例化。因此,控制器读取此JSON数据后,它将立即生成ContainedObj

  • 问题内容: 在反序列化过程中(据我了解,这是将JSON数据转换为Java对象的过程),我如何告诉杰克逊,当它读取不包含数据的对象时,应将其忽略吗? 我正在使用Jackson 2.6.6和Spring 4.2.6 我的控制器收到的JSON数据如下: 问题是对象“ containedObject”按原样解释,并且正在实例化。因此,一旦我的控制器读取此JSON数据,它就会生成ContainedObjec

  • 我们最近从Jackson json 2.8.2转移到了2.9.4,我们看到了行为上的重大变化。我们使用的是JDK1.8。 前面,我们在对象映射器级别将序列化包含设置为NON_DEFAULT,所有操作都很正常。 现在,在更改为2.9.2之后,NON_DEFAULT将忽略所有默认值,如boolean false、integer 0、....这破坏了我们的测试用例。 我们的要求是只忽略空字段和空白字段,

  • 问题内容: 我目前正在使用杰克逊2.1.4,并且在将对象转换为JSON字符串时忽略字段时遇到了一些麻烦。 这是我的类,它充当要转换的对象: 这是我如何转换它: 这是输出: 如何避免这些空值?我只想获取“订阅”目的所需的信息! 这正是我要查找的输出: 我还尝试了@JsonInclude(Include.NON_NULL)并将所有变量都设置为null,但是它也不起作用!感谢您的帮助! 问题答案: 您将

  • 下面是我的类,它充当要转换的对象: 下面是我的转换方法: 输出如下: 下面正是我要查找的输出: 我还尝试了@jsonInclude(include.non_null),并将我的所有变量置为null,但也没有起作用!谢谢你们的帮助!

  • 有没有一种通用的方法告诉Gson不要写空字符串? 我非常不喜欢实现一个TypeAdapter,它可以像这里的答案所暗示的那样处理每个字段。