我继承了一些使用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.是否有相应的类可以保留现有的行为?或者是必要的替代品?
答案 0 :(得分:2)
DefaultSerializerProvider必须是您正在寻找的。请注意,它们和Jackson 1.x的StdSerializerProvider都是SerializerProvider的子类。他们也有非常相似的方法。
请注意,StdSerializerProvider是一个具体的类,而DefaultSerializerProvider是抽象的。但是,您可以创建一个新的DefaultSerializerProvider.Impl来创建一个具体的类。