我正在尝试使用 Jackson 将一些 JSON 对象映射到 Java 对象。 JSON 对象中的一些字段是必需的(我可以用 @NotNull
标记),有些是可选的。
与 Jackson 映射后,所有未在 JSON 对象中设置的字段在 Java 中都将具有 null 值。是否有与 @NotNull
类似的注释可以告诉 Jackson 为 Java 类成员设置默认值,以防它为空?
编辑:为了让问题更清楚,这里有一些代码示例。
Java 对象:
class JavaObject {
@NotNull
public String notNullMember;
@DefaultValue("Value")
public String optionalMember;
}
JSON 对象可以是:
{
"notNullMember" : "notNull"
}
或者:
{
"notNullMember" : "notNull",
"optionalMember" : "optional"
}
@DefaultValue
注释只是为了显示我的要求。这不是真正的注释。如果 JSON 对象与第一个示例中的一样,我希望 optionalMember
的值是 "Value"
而不是 null
。有没有做这样的事情的注释?
原文由 gookman 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有注释来设置默认值。
您只能在 java 类级别上设置默认值: