如何在 Spring Boot 中从控制器覆盖 @JsonInclude

Posted

技术标签:

【中文标题】如何在 Spring Boot 中从控制器覆盖 @JsonInclude【英文标题】:How to override @JsonInclude from controller in Spring boot 【发布时间】:2020-04-09 16:51:01 【问题描述】:

我有一个 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 中实现这一点?处理这种情况的最佳方法是什么?

【问题讨论】:

请参考这个问题***.com/questions/35672131/… 【参考方案1】:

这有帮助吗?

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

【讨论】:

以上是关于如何在 Spring Boot 中从控制器覆盖 @JsonInclude的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 中从资源服务器中的令牌中提取声明

如何在 Spring Boot 中覆盖默认 JSON 响应

如何在不覆盖 Spring Boot 使用的情况下定义自定义 ObjectMapper bean

如何在apache中从角度调用spring boot api

如何在 Spring Boot 中从双向表关系生成 DTO

如何在 Spring Boot 中从 mongodb 更改 geojson (GeoJsonPolygon) 的编组?