防止json结果中的空值(spring)

时间:2016-07-01 13:44:34

标签: java json spring spring-mvc jackson

现在,我的JSON结果中有很多的空值(谈论大约1000多个),我想从该结果中排除。

我经常搜索并发现了很多关于此的问题/答案,但无法找到符合我情况的内容:

  • 我使用的是Spring 4.0.1和fasterxml.jackson 2.4.2
  • 使用Spring Boot
  • 我不能简单地覆盖spring-mvc ObjectMapper,因为有很多端点会受到它的影响
  • 我的域模型是从外部XML文件自动生成的,因此我无法为该域模型添加注释

所以基本上我想做以下其中一项:

  • 为自动生成的域类添加等效的注释(例如,设置包结构或其他内容)
  • 覆盖Spring用于一个特定控制器的ObjectMapper,以添加objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

有没有办法实现这个目标?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我通过为控制器实现自己的objectMapper解决了我的问题。 webservices现在必须返回String而不是对象或List

private ObjectMapper objectMapper;

@PostConstruct
private void configureObjectMapper() {
    objectMapper = new ObjectMapper();
    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
}

@RequestMapping(...)
@ResponseBody
public String getSomething(...) {
    try {
        return objectMapper.writeValueAsString(getSomething());
    } catch (JsonProcessingException e) {
        LOG.error("Could not serialize to JSON", e);
    }
    return null;
}