首页 > 解决方案 > getJSONObject 错误:JSONObject["..."] 不是 JSONObject

问题描述

我正在尝试解析 JSON 字符串,但在尝试获取嵌套对象时出错:

JSONObject jsonObject = new JSONObject(jsonString);

System.out.println(jsonObject);
System.out.println(jsonObject.keySet());
System.out.println(jsonObject.getJSONObject("matches"));

下面是控制台中的输出。据我所见,JSON 是有效的,因为 jsonObject 是在没有错误的情况下创建的。但是当我尝试获取“匹配”时,它会引发错误。我已经将我的代码与教程进行了比较,但我看不出问题出在哪里:

{"matches":[{"id":233028,"awayTeam":{...

[matches, count, filters, competition]

Error in client: JSONObject["matches"] is not a JSONObject.

有什么我做错了吗?如果需要,很乐意提供任何进一步的信息。

标签: java

解决方案


matches是一个数组,而不是一个对象。使用getJSONArray

System.out.println(jsonObject.getJSONArray("matches"));

(或更有用的是:

System.out.println(Arrays.deepToString(jsonObject.getJSONArray("matches")));

因为System.out.println数组本身并不能真正显示有用的信息。)


推荐阅读