Java 解析JSON失败,没有JSONArray

Java 解析JSON失败,没有JSONArray,java,json,Java,Json,我试图在Java程序中解析以下JSON JSON { "data": { "pageIDentifier":" nametitle", "page": { "pageID”:” sports_league_member", "platform":" www", "activityType":" ent", "businessUnit":" ent",

我试图在Java程序中解析以下JSON

JSON

{
    "data": {
        "pageIDentifier":" nametitle",
        "page": {
            "pageID”:” sports_league_member",
            "platform":" www",
            "activityType":" ent",
            "businessUnit":" ent",
            "productLOB":" ent",
            "productOffered":" abc",
            "productQualifier”:” abc:a bc”,
            "flowType”:” sports_com”,
            "pageDesc”:” desc”,
            "attributes": {
                "pageType":" www",
                "host”:” finaluser”,
                "appId”:” SportsAppID_user”,
                "daEnvironment”:” releaser”,
                "jvm":" ent_logon_01",
                "xCKey":" SportsAppID_user",
                "daUID":" jddc9yu5pi1yy6",
                "sysEnv”:” user”,
                "uri”:” /www/sportscenter”,
                "daPageName":" "
            }
        }
    }
}
JAVA程序

URL url = getClass().getResource("test.json");
File file = new File(url.getPath());
String jsonData = readFile(file.getAbsolutePath());
JSONObject jobj = new JSONObject(jsonData);
JSONArray jarr = new JSONArray(jobj.getJSONArray("data").toString());
System.out.println("jarr: " + jarr);
我在执行此代码时遇到以下错误。请注意,jsonData提供的是完整的json字符串,没有任何问题

org.json.JSONException:JSONObject[“数据”]不是JSONArray


如何从上述json值解析“数据”值?请注意。

数据
不是数组

试试这个:

System.out.println("jarr: " + jobj.getJSONObject("data").toString());

数据
不是数组

试试这个:

System.out.println("jarr: " + jobj.getJSONObject("data").toString());

您的JSON示例清楚地表明数据不是数组@JonnathanQ是对的,数据不是数组,如果它是数组,您应该通过
jobj.getJSONArray(“数据”)
读取它,而不必执行
new JSONArray
也可以使用一些不规则的双引号,但“倾斜”ones@JoseDaSilva:这可能是使用某些MS程序的产物发帖时,MS喜欢更改引号,并称之为“智能引号”。如果实际数据包含无效的字符,那么JSONObject将在到达
.getJSONArray
call.JSON数组之前呕吐。JSON数组以[开头,以]结尾。例如[1,2,3,4]。与
data
关联的值是一个JSON对象,因为它以{开头,以}结尾。请看您的JSON示例,它清楚地表明数据不是数组@JonnathanQ是对的,数据不是数组,如果它是数组,您应该通过
jobj.getJSONArray(“数据”)
读取它,而不必执行
new JSONArray
也可以使用一些不规则的双引号,但“倾斜”ones@JoseDaSilva:这可能是使用某些MS程序的产物发帖时,MS喜欢更改引号,并称之为“智能引号”。如果实际数据包含无效的字符,那么JSONObject将在到达
.getJSONArray
call.JSON数组之前呕吐。JSON数组以[开头,以]结尾。例如[1,2,3,4]。与
data
关联的值是一个JSON对象,因为它以{开头,以}结尾。看见