java - Jackson TypeFactory 静态方法已弃用使用什么?

标签 java jackson

jackson 的 Typefactory 类中有许多已弃用的方法。我是这样使用它的:

public List<T> getX(Class<T> clz) {
    ObjectMapper mapper = new ObjectMapper();
    try {
        String jsonData = mapper.writeValueAsString(data);
        a = mapper.readValue(jsonData, TypeFactory.collectionType(List.class, clz));
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
    return a;// a is a global variable
}

它警告我 collectionType 已被弃用。用什么代替它?

最佳答案

TypeFactory 本身并没有被弃用,只是静态方法;像“constructType”这样的实例方法是可用的。所以问题是您从哪里获得要使用的 TypeFactory 实例。

大多数情况下,您使用 getTypeFactory 方法从 ObjectMapper 获取实例;或来自 SerializationConfig/DeserializationConfig。他们随身携带一个实例。 如果这些都不起作用,您还可以使用 TypeFactory.instance

弃用的原因是一些扩展模块想要替换标准工厂:具体来说,Scala 模块需要使用 Scala Collection(等)类型扩展类型处理——默认情况下这些不会工作,因为 Scala 不扩展java.util 版本。

关于java - Jackson TypeFactory 静态方法已弃用使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133725/

相关文章:

java - 在java中将json字符串切割成两个不同的json字符串

android - 在 android 中运行 proguard 时 Jackson.jar 出错

java - 让 Jackson 使用 GSON 注释

java - wso2esb 和 wso2as - 两个 Web 服务的链接或编排

java - 如何消除Android Root View 中的模糊

Java - 如何从 zip 文件内的 CSV 文件获取行数

java - 如何优雅地检查原始资源是否不存在?

java - 玩 Java - 无法连接数据库 postgreSQL

java - json 键的值是另一个有效的 json 本身。是否可以将这个值解析为String而不是将内部json解析为json?

json - 无法升级到 Jackson 2.1.4,Jersey 忽略注释