Java 使用数组或字符串解析JSON实例类型
我正在尝试使用Jackson解析JSON数据,发现该实例有时是数组或字符串 带字符串的JSON数据实例:Java 使用数组或字符串解析JSON实例类型,java,json,jackson,woocommerce-rest-api,Java,Json,Jackson,Woocommerce Rest Api,我正在尝试使用Jackson解析JSON数据,发现该实例有时是数组或字符串 带字符串的JSON数据实例: { "Value" : "1" } 带数组的JSON数据安装: { "Value" : ["ram","kumar"] } 由于此错误,下面给出了获取错误 com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList
{
"Value" : "1"
}
带数组的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();
}
}
像这样读入
map
数据结构,然后对其进行处理
final Map<String, Object> result = new ObjectMapper().readValue(jsonStr,
new TypeReference<Map<String, Object>>() {
});
final Map result=new ObjectMapper().readValue(jsonStr,
新类型引用(){
});
您可以编写自定义反序列化程序并编写自定义逻辑来处理此类数据。在反序列化程序中,可以检查节点是否为数组
请参考(示例是XML格式的,但也可以通过使用
ObjectMapper
类似地用于JSON)这里我使用的是POJO类,我需要按照您提到的代码删除它。只需按照上面的操作,它应该可以工作。