java - 与 Jackson 映射时将默认值设置为空字段

我正在尝试使用 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" 而不是 null。有没有做这种事情的注解?

最佳答案

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

public class JavaObject 
{
    public String notNullMember;

    public String optionalMember = "Value";
}

https://stackoverflow.com/questions/18805455/

相关文章:

java - 由于输入结束 jackson 解析器,没有要映射的内容

c# - 将 JSON 数据发布到 ASP.NET MVC

android - 无法从 Spring Webservice 中的 START_ARRAY tok

python - 将包含多行 JSON 的文件加载到 Pandas 中

ruby-on-rails - ActiveRecord 使用 JSON 而不是 YAML 进行序列

json - REST:使用一个请求更新多个资源 - 它是标准的还是应该避免的?

python - 使用常规编码器使对象 JSON 可序列化

javascript - 在Javascript中将JSON字符串转换为JSON对象数组

JSON 值 1 或 0 - int 或 boolean

java - 忽略 Jackson 序列化的特定字段