Maison > Java > javaDidacticiel > le corps du texte

Pourquoi est-ce que j'obtiens une erreur de compilation lorsque j'essaie de désérialiser JSON avec Jackson en types polymorphes ?

Mary-Kate Olsen
Libérer: 2024-11-19 08:31:02
original
645 Les gens l'ont consulté

Why am I getting a compile error when trying to deserialize JSON with Jackson into polymorphic types?

Désérialiser JSON avec Jackson en types polymorphes - Clarification de l'erreur de compilation

L'erreur rencontrée dans l'extrait de code fourni concerne l'utilisation incorrecte du méthode readValue d'ObjectMapper. Plus précisément, les types d'arguments ne correspondent pas à la signature de méthode attendue.

Signature de méthode attendue :

public <T> T readValue(JsonParser jp, Class<T> valueType)
                          throws IOException, JsonProcessingException
Copier après la connexion

Appel de méthode erroné :

return mapper.readValue(root, animalClass);
Copier après la connexion

Dans l'appel erroné, le premier argument est un ObjectNode au lieu d'un JsonParser. Ce type d'argument incorrect se produit car le code tente d'utiliser mapper.readTree(jp) pour récupérer un ObjectNode du JsonParser. Cependant, la méthode correcte pour cette conversion est mapper.readtree(jp) (notez le "t" minuscule dans "Tree").

Solution :

Pour rectifier l'erreur de compilation, remplacez la ligne par :

return mapper.readValue(mapper.readTree(jp), animalClass);
Copier après la connexion

Cette correction garantit que le premier argument de readValue est un JsonParser et que le deuxième argument est le type de classe cible, animalClass.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal