我正在尝试使用Jackson解析JSON数据,一段时间后发现该实例为数组或字符串
带有String的JSON DATA实例:
{
"Value" : "1"
}
带有Array的JSON数据实例:
{
"Value" : ["ram","kumar"]
}
由于此错误而在下面给出
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot
deserialize instance of `java.util.ArrayList` out of VALUE_STRING token
在这种情况下,如何解决这个问题,谢谢
当前的Java代码
ObjectMapper objectMapper = new ObjectMapper();
try {
String jsonInString = objectMapper.writeValueAsString(products.get(j));
InventoryParser inventoryParser =
objectMapper.readValue(jsonInString, InventoryParser.class);
System.out.println(inventoryParser.getName());
}
catch (IOException e)
{
e.printStackTrace();
}
}
答案 0 :(得分:0)
像这样读入map
数据结构,然后对其进行处理。
final Map<String, Object> result = new ObjectMapper().readValue(jsonStr,
new TypeReference<Map<String, Object>>() {
});
答案 1 :(得分:0)
您可以编写自定义解串器并编写自定义逻辑来处理此类数据。在反序列化器中,您可以检查节点是否为数组。
请参考deserialize xml to pojo using jackson xml mapper(示例使用XML,但也可以使用ObjectMapper
类似地用于JSON)