Jackson并未反序列化已序列化的通用列表

Jackson并未反序列化已序列化的通用列表,第1张

Jackson并未反序列化已序列化的通用列表

您需要显示更多代码,特别是有关如何调用反序列化的代码,但是从错误中我想您可能没有传递T的参数化。如果丢失了T,则只能假定T的类型为Object,标称类型为T。对象绑定到“本机”
Java类型,对于JSON对象,它是Map(特别是linkedHashMap以保留顺序)。

因此,您可能只需要在反序列化时指定对象的通用类型(对于序列化,由于可以使用运行时类型,因此不需要);通过使用TypeReference(不是普通类,因为它没有泛型类型信息),或通过构造启用了泛型的JavaType来实现。例如:

NSResponse<CheckStatusDetail> resp = mapper.readValue(json, new TypeReference<NSResponse<CheckStatusDetail>>() { });

要么

NSResponse<CheckStatusDetail> resp = mapper.readValue(json, TypeFactory.genericType(NSResponse.class, CheckStatusDetails.class));

两者都起作用;如果type仅动态可用,则后者是必需的。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5652071.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存