0

我继承了一些使用 Jackson 1.9.2 的遗留代码,并希望将其升级到 Jackson 2.x。争论点之一如下:

class CustomObjectMapper extends ObjectMapper {
    CustomObjectMapper(KeySerializer keySerializer) {
        // StdSerializerProvider doesn't exist in Jackson 2.x
        final StdSerializerProvider sp = new StdSerializerProvider();
        sp.setNullValueSerializer(new NullSerializer());
        sp.setDefaultKeySerializer(keySerializer);
        setSerializerProvider(sp);
    }
}

我遇到的问题是StdSerializerProvider 存在于 Jackson 1.9.x中,但不存在于 Jackson 2.x 中。是否有一个等效的类可以保留现有行为?还是根本需要更换?

4

1 回答 1

3

DefaultSerializerProvider必须是您要查找的内容。请注意,这和 Jackson 1.x 的 StdSerializerProvider 都是 SerializerProvider 的子类。他们也有非常相似的方法。

请注意,StdSerializerProvider 是一个具体的类,而 DefaultSerializerProvider 是抽象的。但是,您可以创建一个新的 DefaultSerializerProvider.Impl 来创建一个具体的类。

于 2016-09-06T21:53:51.567 回答