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

@JsonIgnore无效 如何排除Java接口JSON响应中的多余字段

问题原因

Jackson序列化时默认会将符合JavaBean命名规范的公共方法识别为对应字段的getter方法进行序列化。你定义的public boolean isEmpty()方法符合boolean类型字段的getter命名规则,因此会被序列化为empty字段。你之前添加的@JsonIgnore仅作用于静态常量EMPTY,对该方法没有生效。

解决方案

  • 方案1:直接给isEmpty()方法添加@JsonIgnore注解,阻止该方法被序列化
// Function to check if the current object is empty
@JsonIgnore
public boolean isEmpty() {
    return this.equals(EMPTY);
}
  • 方案2:在类上添加@JsonIgnoreProperties注解,指定要忽略的字段名
@Data
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(value = {"empty"})
public class RToleranceResponse implements Serializable  {
    // 类内原有逻辑不变
}

额外优化建议

你当前的类上同时标注了@Data、@Getter、@Setter三个Lombok注解,其中@Data已经默认包含了@Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor的功能,保留@Data即可,其余两个注解可以删除。

内容的提问来源于stack exchange,提问作者Masoom Raza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:39:02