我正在尝试使用Jackson将一些JSON对象映射到Java对象。JSON对象中的某些字段是必填字段(可以用标记@NotNull),而某些字段是可选字段。
@NotNull
用Jackson映射之后,在JSON对象中未设置的所有字段在Java中都将具有空值。是否有类似的注释@NotNull可以告诉Jackson为Java类成员设置默认值(如果为null)?
编辑:为了使问题更清楚,这里是一些代码示例。
Java对象:
class JavaObject { @NotNull public String notNullMember; @DefaultValue("Value") public String optionalMember; }
JSON对象可以是:
{ "notNullMember" : "notNull" }
要么:
{ "notNullMember" : "notNull", "optionalMember" : "optional" }
该@DefaultValue注释只是为了展示一下我问。这不是真正的注释。如果JSON对象类似于第一个示例,则我希望的值optionalMember是"Value"and not null。有没有做这种事情的注释?
@DefaultValue
optionalMember
"Value"
null
没有注释可以设置默认值。 您只能在Java类级别上设置默认值:
public class JavaObject { public String notNullMember; public String optionalMember = "Value"; }