将自定义DeserializerFactory添加到Jackson 2 ObjectFactory

时间:2015-01-02 14:04:54

标签: java json jackson jackson-modules

我试图从Jackson 1.x升级到2.x.

我遇到问题的一个方面就是我使用自定义DeserializerFactory,它看起来像这样:

objectMapper.setDeserializerProvider(objectMapper.getDeserializerProvider()
                                                   .withFactory(myFactory));

setDeserializerProvider现在已经在Jackson2中消失了(虽然setSerializerProvider仍在那里)。我正在考虑使用SimpleModule,但这并不是我需要的。

这应该如何在2中起作用?

更新: 我觉得有必要强调它需要成为一个工厂。不只是注册反序列化器。

自定义工厂将信息传递给Deserializer,如下所示:

if (CollectionPage.class.equals(type.getRawClass())) {
        final JsonDeserializer<Object> contentDeserializer = type.getContentType().getValueHandler();
        return new MyCollectionDeserializer(type, contentDeserializer);
    }

对于包含不同类型的集合,该值(contentDeserializer)在运行时是不同的。

0 个答案:

没有答案