【问题标题】:How to remove null parameters in a json rest response?如何删除 json 休息响应中的空参数?
【发布时间】:2015-07-17 13:04:01
【问题描述】:

我正在使用spring 创建rest 服务,并希望提供json 响应:

@RequestMapping(value = "/test",
        method = RequestMethod.GET,
        produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public MyResponse content() {
    return rsp;
}

MyResponse 可能包含不应在JSON 响应中返回的null 值(应删除这些参数)。

@XmlRootElement
class MyResponse {
}

这可能吗?

【问题讨论】:

  • 您使用哪个 JSON 映射器?
  • 我不知道。我只是使用 spring-boot 和 @RestController 注释。
  • Jackson 是默认的 spring json 映射器。

标签: java json spring rest


【解决方案1】:

试试这个:

@JsonInclude(JsonInclude.Include.NON_NULL)
class MyResponse {
...
}

你需要更新你的依赖并导入这个:

import com.fasterxml.jackson.annotation.JsonInclude;

【讨论】:

    【解决方案2】:

    全局删除null 属性。

    spring.jackson.default-property-inclusion = non_null
    

    【讨论】:

    • 这是一个非常巧妙的技巧,考虑到我几乎总是使用@JsonInclude(JsonInclude.Include.NON_NULL) 注释我的所有 DTO,它确实优雅且方便。谢谢!
    • 我不确定为什么没有将其标记为答案。简单直接,但它确实有效。
    • 这真的很优雅。但我认为它适用于最新的 spring-boot 版本 2.5.0
    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多