使用 Jackson 的泛型类型反序列化 JSON
问题:如何使用 Jackson 将 JSON 数据反序列化为泛型类?
考虑以下示例class:
class Data<T> { int found; Class<T> hits }
使用 mapper.readValue(jsonString, Data.class) 的标准 JSON 反序列化尝试将失败。为了正确地反序列化数据,我们需要指定类型参数
答案:Jackson提供了一个TypeReference类来在反序列化过程中处理泛型类型。要使用它:
为泛型类创建一个 TypeReference 对象。在此示例中,Data
new TypeReference<Data<String>>() {}
将 TypeReference 对象传递给 readValue 方法:
mapper.readValue(jsonString, new TypeReference<Data<String>>() {});
这将正确地将 JSON 数据反序列化为Data
以上是如何使用 Jackson 将 JSON 反序列化为通用类?的详细内容。更多信息请关注PHP中文网其他相关文章!