一尘不染

使用Jackson映射时,将默认值设置为空字段

json

我正在尝试使用Jackson将一些JSON对象映射到Java对象。JSON对象中的某些字段是必填字段(可以用标记@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。有没有做这种事情的注释?


阅读 1344

收藏
2020-07-27

共1个答案

一尘不染

没有注释可以设置默认值。
您只能在Java类级别上设置默认值:

public class JavaObject 
{
    public String notNullMember;

    public String optionalMember = "Value";
}
2020-07-27