【问题标题】:JSON response object using stream使用流的 JSON 响应对象
【发布时间】:2020-06-08 12:18:43
【问题描述】:

我正在使用 Spring Boot。我正在从 DAO 生成 JSON 响应。 我的最终 JSON 响应具有以下三个属性:

                {
                    "A": "00011",
                    "B": "abc",
                    "C": "RDG"
                }

输出应如下所示:

               {
                    "A": "00011",
                    "B": "abc"
                }

在下面的代码中,TModel 从 DAO 继承了所有三个字段 A、B、C 的属性。这将返回给我的控制器。如何在我的 JSON 响应中删除字段 C

代码:

public TModel(List<TModel> tEntities) {
        List<TModel> responseEntities= tEntities.stream()
                .filter(model -> model.getStatus().equals("RDG"))
                .collect(Collectors.toList());

【问题讨论】:

  • 如果您允许更改响应模型,只需将 @JsonIgnore 注释放在 C 字段上方

标签: spring spring-boot stream


【解决方案1】:

解决方案 1)
在字段 c 上添加 @JsonIgnore 注释

解决方案 2)
创建一个没有字段 C 的 DTO 对象。您可以使用 MapStruct 之类的工具来帮助在域和 DTO 对象之间进行映射。

我更喜欢解决方案 2,因为它更干净。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多