Java ClassCastException:org.json.simple.JSONArray不能强制转换为org.json.simple.JSONObject
我试图解析一个son文件,但我不知道我做错了什么(当然,我也不知道我做对了什么) file.jsonJava 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
[{
"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;