当前位置: 动力学知识库 > 问答 > 编程问答 >

java - ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject

问题描述:

I am trying to parse a son file, and I don't know what I'm doing wrong (of course, I don't really know what I'm doing right, either).

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"

}]}]

code:

import java.io.FileNotFoundException;

import java.io.FileReader;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

import org.json.simple.parser.ParseException;

//...........

JSONParser parser = new JSONParser();

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

JSONObject json = (JSONObject) obj;

String unit = (String) json.get("elemTwo");

System.out.println(unit);

I get the error ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject. Truthfully, I have no idea what I'm doing. Any help would be great! Thanks!

网友答案:

You should cast your obj to JsonArray instead of JsonObject, because your json file has [] at the root.

网友答案:

When the JSonParser parses the file, it's returning it as a JSONArray, to solve it try to use this:

    JSONObject obj = (JSONObject)obj;
    JSONObject elem = (JSONObject)obj.get("0");
    String unit = (String) elem.get("elemTwo");
    System.out.println(unit);
分享给朋友:
您可能感兴趣的文章:
随机阅读: