试图解决使用 Jackson 的 ObjectMapper 反序列化多态 JSON 时的编译错误,罪魁祸首在于readValue() 方法的参数类型不匹配。
有问题的行是:
通用 readValue() 方法需要 TypeReference 或 Class 作为第二个参数,但 AnimalClass是 Class
要解决此错误并允许多态反序列化,我们可以利用 Jackson 的 JSON 注释。在这种方法中,使用了 @JsonTypeInfo、@JsonSubTypes 和 @JsonIgnoreProperties 注解。
修改 Animal 类及其子类,如下所示:
通过这些注释,Jackson 现在可以正确地将多态 JSON 数据反序列化为适当的子类。更正后的 readValue() 行将是:
以上是如何使用 Jackson 将 JSON 反序列化为多态类型:解决'无法直接映射”编译错误?的详细内容。更多信息请关注PHP中文网其他相关文章!