我继承了一些使用Jackson 1.9.2的遗留代码,并希望将其升级到Jackson2.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,但在Jackson 2.x中却没有。是否有与此等效的类来保留现有行为?还是根本不需要更换? 最佳答案
DefaultSerializerProvider必须是您要寻找的。请注意,它们和Jackson 1.x的StdSerializerProvider都是SerializerProvider的子类。他们也有非常相似的方法。
注意,StdSerializerProvider是一个具体的类,而DefaultSerializerProvider是抽象的。但是,您可以创建一个新的DefaultSerializerProvider.Impl来创建一个具体的类。