首页  >  文章  >  Java  >  如何使用 Jackson 将 JSON 反序列化为通用类?

如何使用 Jackson 将 JSON 反序列化为通用类?

DDD
DDD原创
2024-11-20 11:41:19554浏览

How to Deserialize JSON into a Generic Class with Jackson?

使用 Jackson 的泛型类型反序列化 JSON

问题:如何使用 Jackson 将 JSON 数据反序列化为泛型类?

考虑以下示例class:

class Data<T> {
    int found;
    Class<T> hits
}

使用 mapper.readValue(jsonString, Data.class) 的标准 JSON 反序列化尝试将失败。为了正确地反序列化数据,我们需要指定类型参数

答案:Jackson提供了一个TypeReference类来在反序列化过程中处理泛型类型。要使用它:

  1. 为泛型类创建一个 TypeReference 对象。在此示例中,Data的类型引用为:将为:

    new TypeReference<Data<String>>() {}
  2. 将 TypeReference 对象传递给 readValue 方法:

    mapper.readValue(jsonString, new TypeReference<Data<String>>() {});

这将正确地将 JSON 数据反序列化为Data 的实例。

以上是如何使用 Jackson 将 JSON 反序列化为通用类?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn