JSON mit Jackson in polymorphe Typen zerlegen - Ein vollständiges Beispiel gibt mir einen Kompilierungsfehler

Ich versuche, ein Tutorial von Programmer Bruce durchzuarbeiten, das die Deserialisierung von polymorphem JSON ermöglichen soll.

Die vollständige Liste finden Sie hierProgrammer Bruce Tutorials (Tolles Zeug übrigens)

Ich habe die ersten fünf ohne Probleme durchgearbeitet, aber ich habe beim letzten einen Haken getroffen (Beispiel 6), was natürlich das ist, was ich wirklich brauche, um zu arbeiten.

Ich erhalte zur Kompilierungszeit die folgende Fehlermeldung

Die Methode readValue (JsonParser, Class) vom Typ ObjectMapper gilt nicht für die Argumente (ObjectNode, Class)

und es wird durch das Stück Code verursacht

  public Animal deserialize(  
      JsonParser jp, DeserializationContext ctxt)   
      throws IOException, JsonProcessingException  
  {  
    ObjectMapper mapper = (ObjectMapper) jp.getCodec();  
    ObjectNode root = (ObjectNode) mapper.readTree(jp);  
    Class<? extends Animal> animalClass = null;  
    Iterator<Entry<String, JsonNode>> elementsIterator =   
        root.getFields();  
    while (elementsIterator.hasNext())  
    {  
      Entry<String, JsonNode> element=elementsIterator.next();  
      String name = element.getKey();  
      if (registry.containsKey(name))  
      {  
        animalClass = registry.get(name);  
        break;  
      }  
    }  
    if (animalClass == null) return null;  
    return mapper.readValue(root, animalClass);
  }  
} 

Speziell durch die Linie

return mapper.readValue (root, animalClass);

Hat jemand schon einmal darauf gestoßen und wenn ja, gab es eine Lösung?

Ich würde mich über jede Hilfe freuen, die jemand im Voraus leisten kann. Danke Jon D.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage