用于顶级地图类型的自定义Jackson序列化程序

时间:2014-02-28 09:15:04

标签: java json serialization jackson deserialization

我有一个“java”地图,我想用我自己的自定义序列化逻辑序列化。请注意,java map本身是顶级对象。

  1. 我想将其作为集合输出,而不是仅针对上面的参数化地图类型进行映射。所有其他地图类型应该作为默认值工作(即MyCustomObject可以具有应该照常工作的Map)。
  2. 我想根据MyCustomObject中的某些属性值忽略序列化中的某些键/值。
  3. MyCustomObject已经提供给我,不在我的掌控之中。
  4. 有没有在杰克逊实现这个目标?此外,反序列化 - 在这种情况下,我将需要一个地图而不是集合。

1 个答案:

答案 0 :(得分:1)

为Map类型编写自己的JsonSerializer和JsonDeserializer,但不要全局注册它们,而是使用Jackson's Mix-in Annotations。此机制使您可以修改不受控制的类的映射器行为。

如果您想知道如何将Map序列化为List,您可以找到答案here