gpt4 book ai didi

json - @JsonFilter 抛出 "JsonMappingException: Can not resolve BeanPropertyFilter"

转载 作者:行者123 更新时间:2023-12-01 21:24:15 29 4
gpt4 key购买 nike

是否可以有选择地确定何时在运行时使用@JsonFilter注释?

当我不提供过滤器时,我收到 JsonMappingException 异常(见下文)。

背景:

我从 recent StackOverflow post 那里学到了我可以使用 @JsonFilter 来动态过滤被序列化的 bean 属性。这很好用。将 @JsonFilter("apiFilter") 添加到我的域类并在我的 jax-rs 服务中添加此代码(使用 CXF 实现)后,我能够动态过滤由我的 RESTful API:

// shortened for brevity
FilterProvider filters = new SimpleFilterProvider().addFilter("apiFilter", SimpleBeanPropertyFilter.filterOutAllExcept(filterProperties));

return mapper.filteredWriter(filters).writeValueAsString(user);

问题是有不同的服务调用,我根本不想应用过滤器。在这些情况下,我想返回整个域类而不过滤任何属性。在我只是尝试返回域类的情况下,我收到如下异常:

Caused by: org.codehaus.jackson.map.JsonMappingException: Can not resolve BeanPropertyFilter with id 'apiFilter'; no FilterProvider configured

at org.codehaus.jackson.map.ser.BeanSerializer.findFilter(BeanSerializer.java:252)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFieldsFiltered(BeanSerializer.java:216)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:140)

最佳答案

我知道这个问题已经得到了解答,但对于任何新人来说, jackson 实际上添加了不会因缺少过滤器而失败的功能( JACKSON-650 ):
你只需要打电话SimpleFilterProvider.setFailOnUnknownId(false) 并且您不会收到此异常。

关于json - @JsonFilter 抛出 "JsonMappingException: Can not resolve BeanPropertyFilter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382094/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com