首页 > 解决方案 > 如何在 Spring Boot 中从控制器覆盖 @JsonInclude

问题描述

我有一个 POJO 类,其中包含该类的注释@JsonInclude(Include.NON_NULL)

@JsonInclude(Include.NON_NULL)
@Getter
@Setter
public class Attribute implements Serializable {
    private String type;
    private List<Object> value;
    private String unit;
    private List<Object> metaInfo;
}

控制器看起来像这样。

    @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
  public Attribute getSingle() {
      return getAttribute(); // getAttribute() will get the object of type Attribute.
  }

现在,我有一个要求,根据 type 字段的值,需要在最终生成的 JSON 中为 value 字段返回 null。

例如,如果 type='XYZ' 则响应为{ type:'XYZ'}. 如果 type='ABC',那么响应应该是{ type:'ABC',value:null}

如何在 Spring Boot 中实现这一点?处理这种情况的最佳方法是什么?

标签: javaspringspring-bootjacksonobjectmapper

解决方案


这有帮助吗?

if (value.getClass() == Integer) {
      return null;
}

推荐阅读