Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 ClassCastException:org.json.simple.JSONArray不能强制转换为org.json.simple.JSONObject_Java_Json - Fatal编程技术网

Java ClassCastException:org.json.simple.JSONArray不能强制转换为org.json.simple.JSONObject

Java ClassCastException:org.json.simple.JSONArray不能强制转换为org.json.simple.JSONObject,java,json,Java,Json,我试图解析一个son文件,但我不知道我做错了什么(当然,我也不知道我做对了什么) file.json [{ "arrOne":{ "one":"a", "two":"b", "three":"c", "four":"d", "five":"e" }, "elemTwo":"f", "elemThree":"g", "elemFour":"h", "elemFive":"i", "arrSix":[{ "six":1, "seve

我试图解析一个son文件,但我不知道我做错了什么(当然,我也不知道我做对了什么)

file.json

[{  
"arrOne":{  
    "one":"a",
    "two":"b",
    "three":"c",
    "four":"d",
    "five":"e"
},
"elemTwo":"f",
"elemThree":"g",
"elemFour":"h",
"elemFive":"i",
"arrSix":[{  
    "six":1,
    "seven":2,
    "eight":"j"
}]}]
代码:


我得到错误ClassCastException:org.json.simple.JSONArray无法转换为org.json.simple.JSONObject。说实话,我不知道我在做什么。任何帮助都会很好!谢谢

您应该将您的
obj
强制转换为
JsonArray
而不是
JsonObject
,因为您的json文件在根目录下有
[]

JSonParser
解析文件时,它将作为
JsonArray
返回,要解决它,请尝试使用以下方法:

    JSONObject obj = (JSONObject)obj;
    JSONObject elem = (JSONObject)obj.get("0");
    String unit = (String) elem.get("elemTwo");
    System.out.println(unit);

您得到的是JSONArray而不是JsonObject

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("/path/to/file.json"));
JSONArray json = (JSONArray) obj;

然后循环此操作并获取jsonobject

您的数据中有一个JSON数组(它包装在
[]
中)。因此,如果您解析它,它的类型是
JSONArray
,而不是
JSONObject
——这正是异常所说的。
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("/path/to/file.json"));
JSONArray json = (JSONArray) obj;