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

@JsonView在多层类继承场景下过滤不生效需如何配置?

Jackson @JsonView多层继承场景过滤失效解决方案

以下是你需要检查和补充的配置项:

  • 关闭Jackson默认无视图注解属性包含规则
    该配置默认开启时,所有未标注@JsonView注解的属性都会被序列化,是继承场景下过滤失效的最常见原因。
    Spring Boot配置示例(application.yml):
    spring:
      jackson:
        mapper:
          DEFAULT_VIEW_INCLUSION: false
    
    单独配置ObjectMapper示例:
    objectMapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, false);
    
  • 校验视图类的继承匹配关系
    @JsonView支持视图类的继承传递:如果控制器指定的视图DeliveryPrdViews.History.class继承自某基础视图类,那么标注了该基础视图类的属性也会被序列化。你需要确认父类T、A中需要返回的属性,标注的视图要么是DeliveryPrdViews.History.class本身,要么是它的父视图类。
  • 检查注解标注位置的兼容性
    如果你使用Lombok的@Data自动生成get/set方法,父类字段上的@JsonView注解不会被自动继承到生成的get方法上,你可以选择手动编写get方法添加注解,或将@JsonView注解放到字段上,同时配置ObjectMapper允许扫描字段注解:
    objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
    
  • 校验全局消息转换器配置
    确认你自定义的Spring MVC HttpMessageConverter注入的是配置了上述规则的ObjectMapper实例,避免默认实例覆盖自定义配置导致规则失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:21:02