我试图通过程序员布鲁斯的一个教程来完成,该教程应该允许多态JSON的反序列化.
完整的列表可以在这里找到 程序员布鲁斯教程(伟大的东西顺便说一句)
我已经完成了前五个没有问题,但我在最后一个(示例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);
}
}
Run Code Online (Sandbox Code Playgroud)
具体由行
return mapper.readValue(root,animalClass);
有没有人遇到过这个问题,如果有的话,是否有解决方案?
我很感激任何人都可以给予任何帮助.