Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用数组或字符串解析JSON实例类型_Java_Json_Jackson_Woocommerce Rest Api - Fatal编程技术网

Java 使用数组或字符串解析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

我正在尝试使用Jackson解析JSON数据,发现该实例有时是数组或字符串

带字符串的JSON数据实例:

{
  "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类,我需要按照您提到的代码删除它。只需按照上面的操作,它应该可以工作。