Java 将JSON值从null更改为空字符串

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

我正在制作一个返回json的rest控制器。我从数据库中获取这些数据,并使用setter-getter映射到java类

{
  "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。