【发布时间】:2015-11-07 10:07:20
【问题描述】:
我正在使用 Jersey 来实现 rest api 和 Jackson 来提供 JSON 支持。我试图通过覆盖BeanSerializerModifier.changeProperties 方法在序列化之前删除某些属性。
但删除属性将基于查询参数。有什么方法可以在我的实现中访问查询参数?
【问题讨论】:
-
您使用的是哪个 Jersey 版本?
-
我使用的是 Jersey 2.6。我可以利用 ThreadLocal 将查询参数信息共享给外部资源吗?
-
如果您可以切换到更高版本(不确定,2.17 还是 2.19),Jackson 支持 Entity Data Filtering。支持查询参数过滤
-
True.. 我们评估了实体数据过滤功能和一些支持的 JAR 需要 JDK 1.7,出于某种原因我们需要坚持使用 JDK 1.6。所以我们排除了这个选项。
-
实体过滤从 2.3 开始可用,但最初它只支持 MOXy。如果您查看文档的底部,您会发现它是可扩展的。 Jersey 稍后使用这种可扩展性为 Jackson 提供支持。如果您想尝试将自己融入到 2.6 中,您可以查看provider used 以在以后的版本中实现此功能