java - 如何在 spring 应用程序中注册自定义 jackson 过滤器?

标签 java json spring spring-mvc jackson

我已阅读以下问题:

https://stackoverflow.com/a/25609465/2674303

我有 spring-mvc 应用程序。如果我用 @ResponseBody 注释注释 Controller 方法并在方法内返回对象,则服务器将 json 提供给客户端。我在类路径中有 Jackson。

在提到的例子中写了下面的代码

ObjectMapper mapper = new ObjectMapper();
mapper.setFilters(new SimpleFilterProvider().addFilter("filter", new ExcludeIdFilter()));

据我所知,这段代码已经写在 spring 内部的某个地方......

请说明如何注册自定义 jackson 过滤器?

最佳答案

您可以像这样配置您自己的 MappingJackson2HttpMessageConverter 实例:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

  @Override
  public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {

    ObjectMapper mapper = Jackson2ObjectMapperBuilder().json()
       .filters(new SimpleFilterProvider().addFilter("filter", new ExcludeIdFilter()));

    MappingJackson2HttpMessageConverter converter = 
        new MappingJackson2HttpMessageConverter(mapper);

    // then replace the default MappingJackson2HttpMessageConverter
    // with your custom one in the list of configured converters
  }

}

关于java - 如何在 spring 应用程序中注册自定义 jackson 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31029370/

相关文章:

java - 如何实现带默认参数的函数

Java - 从预先设计的形状中选择随机形状

ios - 具有反应性 objective-c 的 NSManagedObject

javascript - 无法将参数传递给 $.getJSON()

java - Spring OAuth2授权: Access Denied

java - Java 如何管理 volatile 字段的可见性?

java - 使用 BigInteger 实现的 RSA 算法没有得到正确的输出

PHP 没有将 MySQL 查询中的所有键写入数组

java - Spring RestController POST 400 错误请求

java - Hibernate 不删除外键行(而是将其设置为 NULL)