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

Ich bin versucht, Arbeit über ein tutorial vom Programmierer Bruce, soll ermöglichen, die Deserialisierung von polymorphen JSON.

Die komplette Liste kann hier gefunden werden
Programmierer Bruce tutorials (Great stuff btw)

Ich gearbeitet habe, durch die ersten fünf mit keine Probleme, aber ich habe getroffen einen Haken auf dem letzten (Beispiel 6), das ist natürlich die eine, die ich wirklich brauchen, um zu arbeiten.

Ich erhalte die folgende Fehlermeldung beim kompilieren

Die Methode readValue(JsonParser, Klasse) in der Art ObjectMapper ist nicht anwendbar für die Argumente (ObjectNode, Klasse)

und es ist verursacht durch das Stück code,

  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

zurück mapper.readValue(root, animalClass);

Hat jemand diese vor und wenn ja, war es da eine Lösung?

Ich würde schätzen jede Hilfe, die jemand geben kann
Vielen Dank im Voraus
Jon D.

InformationsquelleAutor der Frage Jon Driscoll | 2015-05-21

Schreibe einen Kommentar