是否有 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.
我继承了一些使用 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.