是否有Jackson 2相当于Jackson 1的StdSerializerProvider?

时间:2016-09-06 21:28:55

标签: java jackson jackson2

我继承了一些使用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.是否有相应的类可以保留现有的行为?或者是必要的替代品?

1 个答案:

答案 0 :(得分:2)

DefaultSerializerProvider必须是您正在寻找的。请注意,它们和Jackson 1.x的StdSerializerProvider都是SerializerProvider的子类。他们也有非常相似的方法。

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