最佳答案
我正在尝试学习一个来自 Programmer Bruce 的教程,该教程允许多态 JSON 的反序列化。
完整的列表可以在这里找到 程序员 Bruce 教程 (顺便说一句,很棒的东西)
我已经通过了前五个没有问题,但我遇到了最后一个障碍(例6) ,当然这是一个我真正需要得到工作。
我在编译时得到以下错误
ObjectMapper 类型中的 readValue (JsonParser,Class)方法不适用于参数(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) ;
Has anyone run into this before and if so, was there a solution?
I'd appreciate any help anyone can give 先谢谢你 Jon D.