Я намагаюся працювати з підручником програміста Брюса, який повинен дозволити десеріалізацію поліморфного JSON.
Повний список можна знайти тут Підручники програміста Брюса (чудові речі до речі)
Перші п’ять я пропрацював без проблем, але останній вдарив (приклад 6), який, звичайно, є тим, що мені дійсно потрібно, щоб працювати.
Я отримую наступну помилку під час компіляції
Метод readValue (JsonParser, Class) у типі ObjectMapper не застосовується до аргументів (ObjectNode, Class)
і це спричинено фрагментом коду
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);
}
}
Конкретно за рядком
повернути mapper.readValue (root, animalClass);
Хто-небудь стикався з цим раніше, і якщо так, чи було рішення?
Буду вдячний будь-якій допомозі, котра може надати подяку, Джон Д.