我可以访问 jackson BeanSerializerModifier 中的请求参数吗?

Can i access request parameter in jackson BeanSerializerModifier?

我正在使用 Jersey 来实现休息 api 并使用 Jackson 来提供 JSON 支持。我试图通过重写 BeanSerializerModifier.changeProperties 方法在序列化之前删除某些属性。

但是删除属性将基于查询参数。在我的实现中有什么方法可以访问查询参数吗?

BeanSerializerModifier 本身的使用会变得复杂,因为该方法只在第一次必须 JsonSerializer 构造时调用一次。至于传递查询参数,您可以使用上下文属性和 ObjectWriter(从 ObjectMapper 构造)传递它们,但这意味着从 Jersey 接管相当多的序列化自动化。

有一种机制可以在不接管整个过程的情况下帮助修改序列化方面:注册 ObjectWriterModifier,使用 ObjectWriterInjector。这些是 Jackson JAX-RS 提供程序的一部分,在 Jackson 2.3 中添加。在不知道更多细节的情况下,我不知道这会有多容易;部分问题是查询参数更多的是输入方面的东西,因此无法从输出处理方面直接访问它们。