我正在尝试浏览Programmer Bruce的教程,该教程应该允许多态JSON的反序列化。
完整列表可以在这里找到 Programmer 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);
之前有人遇到过这个问题吗?如果有,有解决方案吗?
任何人都能提供的帮助,我将不胜感激。
精慕HU
相关分类