2014-01-09 20 views
0

我编写了一个jackson模块来启用特定类型的序列化。现在我想启用一个新的序列化器的全局配置。所以我必须在创建期间在序列化器实例上设置属性。我如何影响带注释的串行器的实例创建

有没有一种方法可以在杰克逊模块内做到这一点?

+0

你能详细阐述一下你正在尝试做什么吗? – StaxMan

+0

我的序列化程序'FubarSerializer'处理所有'Fubar'实例。它可以用两种方式(A和B)序列化这些实例。我有一堆这些串行器包装成一个模块。我想配置他们是否在模块上使用A或B全局setter。 – Laures

回答

0

模块接口是无状态的,只是一件事,所以它没有默认接线来影响它添加的东西。

但是你可以做的是使用解决方法;可能性包括:

  • 使用ThreadLocal;在串行化之前设置,从串行器读取
  • 使用新的(Jackson 2.3)“属性”特征;可以设置这些写(ObjectWriter.setAttribute())和阅读(ObjectReader.setAttribute()),通过串行器/解串器通过上下文对象(SerializerProvider/DeserializationContext

所以希望这些作品为您的使用案例之一进行访问。

相关问题