0

我写了一个杰克逊模块来启用特定类型的序列化。现在我想启用新序列化程序之一的全局配置。所以我必须在创建期间在序列化程序实例上设置一个属性。

有没有办法从杰克逊模块中做到这一点?

4

1 回答 1

0

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

但是您可以做的是使用变通方法;可能性包括:

  • 使用ThreadLocal; 在序列化之前设置,从序列化器中读取
  • 使用“属性”的新(Jackson 2.3)功能;可以设置写入(ObjectWriter.setAttribute())和读取(ObjectReader.setAttribute()),由序列化器/反序列化器通过上下文对象(SerializerProvider/ DeserializationContext)访问

因此,希望其中之一适用于您的用例。

于 2014-02-07T18:46:46.933 回答