Sto tentando di elaborare un tutorial del programmatore Bruce che dovrebbe consentire la deserializzazione di JSON polimorfo.Deserializzare JSON con Jackson in tipi polimorfici - Un esempio completo mi sta dando un errore di compilazione
L'elenco completo può essere trovato qui Programmer Bruce tutorials (roba Grande btw)
Ho lavorato attraverso i primi cinque senza problemi, ma ho colpito un intoppo sulla ultimo (esempio 6), che naturalmente è quello che ho davvero bisogno di lavorare.
sto ottenendo il seguente errore in fase di compilazione
Il metodo readValue (JsonParser, Class) nel tipo ObjectMapper non è applicabile per gli argomenti (ObjectNode, Class)
ed è essendo causato dal pezzo di codice
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);
}
}
particolare dalla linea
return mapper.readValue (root, animalClass);
Qualcuno si è imbattuto in questo prima e se sì, c'era una soluzione?
Apprezzerei tutto l'aiuto che chiunque può dare Grazie in anticipo Jon D.
Quale versione stai usando, l'esercitazione si assume Jackson 1.x, anche qualche ragione per cui non preferire le annotazioni basata deserializzazione per le istanze polimorfici Jackson? – jbarrueta
Sto usando 2.5. Posso vedere se un downgrade a 1.X risolverà il problema. Inoltre, puoi consigliare un tutorial/esempio che potrebbe mostrare l'uso di annotazioni per gestire questo problema? –
Sì, non ti consiglierei di effettuare il downgrade, darò un esempio funzionante. – jbarrueta