我正在尝试用Jackson将一些JSON对象映射到Java对象。JSON对象中的一些字段是强制性的(我可以用@NotNull
标记),而一些字段是可选的。
在与Jackson进行映射之后,JSON对象中没有设置的所有字段在Java中都将有一个空值。是否有类似于@NotNull
的注释可以告诉Jackson为Java类成员设置默认值,以防它为空?
class JavaObject {
@NotNull
public String notNullMember;
@DefaultValue("Value")
public String optionalMember;
}
{
"notNullMember" : "notNull"
}
或:
{
"notNullMember" : "notNull",
"optionalMember" : "optional"
}
@defaultvalue
注释只是为了显示我的要求。这不是真正的注解。如果JSON对象与第一个示例类似,我希望optionalmember
的值为“value”
而不是null
。有没有做这种事的注解?
没有可设置默认值的注释。
只能在java类级别设置默认值:
public class JavaObject
{
public String notNullMember;
public String optionalMember = "Value";
}
问题内容: 我正在尝试使用Jackson将一些JSON对象映射到Java对象。JSON对象中的某些字段是必填字段(可以用标记),而某些字段是可选字段。 用Jackson映射之后,在JSON对象中未设置的所有字段在Java中都将具有空值。是否有类似的注释可以告诉Jackson为Java类成员设置默认值(如果为null)? 编辑:为了使问题更清楚,这里是一些代码示例。 Java对象: JSON对象可以
我想将字段从映射到类,如果源值为,我想将其转换为基于数据类型的默认值(“”表示字符串,0表示数值类型等)。对于设置值,我不使用常规的setter,而是使用builder(带有protobuf,因此方法的名称为和)。 我的映射器如下所示: 使用此代码生成的映射器实现调用,而不是执行null检查并在source返回时设置默认值。有趣的是,当我向方法添加以下注释时,在实现中出现了空检查。 这是构建器中的
问题内容: 为什么会出现错误“属性值必须恒定”。是不是 空 常量??? 问题答案: 我不知道为什么,但是JLS很清楚: 默认元素的定义是: 不幸的是,当您不符合语言规范时,我一直发现新的语言功能(枚举和现在的注释)具有非常无用的编译器错误消息。 编辑:一点点搜索在JSR-308中发现了以下内容,他们争辩说在这种情况下允许空值: 我们注意到对该提案的一些反对意见。 该提案无法解决以前无法实现的任何事
我使用Java和Jackson库将JSON文件解析为Java类。我的问题是,如果值为null或空,我无法设置默认值。有可能吗?现在,我只是把它写在setters部分。 例如,我有一个JSON文件 在我的Java类中,如果值为null或空,我想将其设置为Java函数。 举个例子 所以,如果设置了这个值,那么就是它。如果不是,那应该是美国。
我正在创建一个rest方法,它可以使用RequestParam注释处理一个可选参数(在本例中是性别)。但性别值始终被视为空值。(spring Version4.0.0)第二个参数被认为是正确的。 提前谢了。潘卡杰
我尝试使用liquibase使用liquibase“addDefaultValue”语法将我的列的默认值设置为null: 但是向myTable插入新行显示默认值仍然设置为“false”,就像以前一样。所以liquibase更改集不起作用。 如何设置列默认值为null与liquibase?