Java 将JSON值从null更改为空字符串
我正在制作一个返回json的rest控制器。我从数据库中获取这些数据,并使用setter-getter映射到java类Java 将JSON值从null更改为空字符串,java,spring-boot,jackson,Java,Spring Boot,Jackson,我正在制作一个返回json的rest控制器。我从数据库中获取这些数据,并使用setter-getter映射到java类 { "example": null, "this": null, "is": null, "only": null, "example": null, "foo": null, "bar": null, &q
{
"example": null,
"this": null,
"is": null,
"only": null,
"example": null,
"foo": null,
"bar": null,
"blabla": null,
"lala": null
}
这是因为数据库中的数据不存在。但我希望数据是这样的:
{
"example": "" ,
"this": "",
"is": "",
"only": "",
"example": "",
"foo": "",
"bar": "",
"blabla": "",
"lala": ""
}
我有100多个字段。因此,我认为在每个变量中使用if-else是不好的。您可以覆盖默认的
ObjectMapper
(由Spring Boot自动配置提供),并配置全局格式以用于字符串类型的属性
@配置
公共类JacksonConfiguration{
@豆子
对象映射器JacksonObject映射器(Jackson2对象映射器生成器){
final var objectMapper=builder.createXmlMapper(false.build();
objectMapper.configOverride(String.class).setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY));
返回对象映射器;
}
}
java8中的var是否等于object?var
可以用于局部变量声明,而不是变量的类型。它从Java10开始提供。Java 8的等效语法是-final ObjectMapper ObjectMapper=…
如果数据库中的数据不存在,它仍然为空。请确保将Spring配置的ObjectMapper
注入控制器。@Autowired private ObjectMapper;然后JsonNode tes=mapper.valueToTree(结果);仍然得到空值。您如何反序列化json?你能在那里添加这个逻辑吗?使用ObjectMapper.valueToTree在@TomerShetah im上查找这个答案,它仍然为空。我正在使用类,然后返回控制器,仍然会得到null。