Ich versuche, ein Tutorial von Programmierer Bruce durchzuarbeiten, das die Deserialisierung von polymorphem JSON ermöglichen soll.
Die vollständige Liste finden Sie hier Programmer Bruce Tutorials (Great stuff btw)
Ich habe die ersten fünf ohne Probleme durchgearbeitet, aber ich habe beim letzten einen Haken bekommen (Beispiel 6), was natürlich derjenige ist, den ich wirklich brauche, um arbeiten zu können.
Beim Kompilieren wird der folgende Fehler angezeigt
Die Methode readValue (JsonParser, Class) vom Typ ObjectMapper gilt nicht für die Argumente (ObjectNode, Class).
und es wird durch den Codeblock 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 geben kann. Jon D.