【问题标题】:Is there a Jackson 2 equivalent to Jackson 1's StdSerializerProvider?是否有与 Jackson 1 的 StdSerializerProvider 等效的 Jackson 2?
【发布时间】:2016-09-06 21:28:55
【问题描述】:

我继承了一些使用 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,但在 Jackson 2.x 中没有。是否有一个等效的类可以保留现有行为?还是根本需要更换?

【问题讨论】:

    标签: java jackson jackson2


    【解决方案1】:

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

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

    【讨论】:

    • this和StdSerializerProvider都实现了接口SerializerProvider,所以我相信这就是我要找的。我确实注意到这个类是抽象的,但你可以使用new DefaultSerializerProvider.Impl() 来获得一个具体的类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2015-06-07
    • 1970-01-01
    • 2012-12-27
    • 2019-11-19
    相关资源
    最近更新 更多