You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DTO向用户返回数据时剔除不需要的冗余字段

问题修复方案

你遇到的问题有两个核心原因:

  1. DTO类中仍保留了不需要的method、mashTemp、temp字段,序列化框架会默认输出所有带有getter方法的类字段
  2. 序列化框架默认未过滤null值字段,导致赋值为空的冗余字段也会被输出

第一步:清理DTO冗余字段

直接删除Beer类中不需要的字段,仅保留你需要返回的业务字段即可:

public class Beer {
   private Integer id;
   private String name;
   private String description;
   
   // 仅保留上述三个字段对应的getter、setter方法
}

修改完成后,返回结果就不会再出现method、mashTemp、temp三个冗余字段。


第二步:(可选)配置序列化规则过滤null值

如果后续业务中DTO存在允许为空的字段,不想让null值字段出现在返回结果中,可以根据你使用的序列化框架做对应配置:

  • 如果你用的是SpringBoot默认的Jackson序列化:
    • 全局配置:在application.yml中添加如下配置
      spring:
        jackson:
          default-property-inclusion: non_null
      
    • 单类配置:在Beer类上添加注解@JsonInclude(JsonInclude.Include.NON_NULL)
  • 如果你用的是FastJSON序列化:
    全局配置中关闭SerializerFeature.WriteMapNullValue属性,或在Beer类上添加注解@JSONType(serialzeFeatures = DisableCircularReferenceDetect)同时关闭null值输出配置。

内容的提问来源于stack exchange,提问作者Filip Vidojevic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:57:04