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

JSON:仅序列化为对象显式设置的字段

山疏珂
2023-03-14

我有一个Java对象,我想序列化为JSON。但是,在此之前,我为该对象的字段设置了一些属性。现在我想将这个对象序列化为JSON。如何仅序列化显式赋值的字段,而基本上排除所有其他字段?

对我来说,在对象类上添加这些注释是不起作用的:@JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY)@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)。原因是我有一些基本数据类型的字段。通过添加上述两个注释之一,我并没有阻止原始数据类型字段被序列化。例如,我有几个布尔字段,它们将被序列化为默认值false。但是,我不希望这些字段出现在JSON结果中,因为在序列化过程之前,我没有明确设置它们的值。有什么想法吗?

更多信息:我正在使用Jackson ObjectMapper。

共有1个答案

戎洛华
2023-03-14

从Jackson 2.6开始,使用@Json包容包容。NON_DEFAULT

值,该值指示只包括具有不同于默认设置的值的属性(即在使用无参数构造函数构造Bean时具有的值)。

Jackson将创建一个类的一次性实例,以便验证哪些属性值与缺省值不同,并且只序列化这些属性值。

 类似资料:
  • 我有一个大的嵌套对象。我想在JSON字符串中序列化这个对象,但是我只需要包含某些字段。这里的问题是字段可能会非常频繁地更改,我希望以一种可以帮助我轻松包含或排除用于序列化的字段的方式来构建它。 我知道我可以编写很多代码来提取某些字段并“手动”构建JSON。但我想知道,除了指定一个必填字段列表之外,是否还有其他优雅的方法可以实现类似的结果? 例如,我希望在响应中只包含和以下对象结构: Json:

  • 问题内容: 当我尝试运行以下代码时: 我得到以下异常: 如何成功使用包含s的对象? 问题答案: 在序列化之前将集合变成列表,或使用自定义处理程序来这样做:

  • 问题内容: 如何在JavaScript中将对象序列化为JSON? 问题答案: 您正在寻找。

  • 问题内容: 我有这个JavaScript原型: 然后创建一个新对象: 如果我做: 结果是: 但我需要将对象的类型包含在JSON字符串中,如下所示: 有没有使用框架之类的方法来执行此操作的快速方法?还是我需要在类中实现一个方法并手动执行? 问题答案: 编辑: 将字符串化 所有类的 “属性”。如果只想保留其中一些,则可以这样分别指定:

  • 问题内容: 因此,当我偶然发现新的JsonSerializable Interface 时,我在php.net上四处徘徊,以获取有关将PHP对象序列化为JSON的信息。它只是 PHP > = 5.4,而我正在5.3.x环境中运行。 PHP <5.4如何实现这种功能? 我还没有使用JSON进行很多工作,但是我试图在应用程序中支持API层,并且将数据对象( 否则将发送到视图 )转储到JSON中将是完美

  • 问题内容: 我有一个名为MyObject的对象,它具有多个属性。MyList是我用linq查询填充的MyObject列表,然后将MyList序列化为json。我最终得到这样的东西 我要做的是仅序列化MyObject的一部分。例如,我可能有Property1,Property2 … Propertyn,并且我希望MyJson仅包含Property3,Property5和Property8。 我想到了