是否有 Jackson 2 等同于 Jackson 1 的 StdSerializerProvider?

Is there a Jackson 2 equivalent to Jackson 1's StdSerializerProvider?

我继承了一些使用 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 exists in Jackson 1.9.x,但杰克逊 2.x 没有。是否有等效的 class 可以保留现有行为?或者是否需要更换?

DefaultSerializerProvider 一定是您要找的。请注意,它们和 Jackson 1.x 的 StdSerializerProvider 都是 SerializerProvider 的子class。他们也有非常相似的方法。

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