尝试从此JSON文件中获取随机单词public class Main { public static void main(String[] args) { JSONObject obj = JSONUtils.getJSONObjectFromFile("/adjs.json"); JSONArray jsonArray = obj.getJSONArray("adjs"); for(int i = 0; i < jsonArray.length(); i++) { System.out.println(jsonArray.get(i)); } Random r = new Random(); int id1 = r.nextInt(jsonArray.length()); String word1 = jsonArray.getJSONObject(id1).getString("adjs"); System.out.println(word1); //String word = jsonArray.getJSONObject(r.nextInt(jsonArray.length())).getString("adjs"); }}有我正在使用的代码,但我不断收到此错误。Exception in thread "main" org.json.JSONException: JSONArray[671] is not a JSONObject. at org.json.JSONArray.getJSONObject(JSONArray.java:428) at Job.Main.main(Main.java:23)我该如何实现?以下是我正在使用的JSON:{ "description": "A list of English adjectives.", "adjs": [ "Aristotelian", "Arthurian", "Bohemian", "Brethren", "Mosaic", "Oceanic", "Proctor", "Terran", "Tudor", "abroad", "absorbing", "abstract", "academic", "accelerated", "accented", "accountant", "acquainted", "acute", "addicting", "addictive", "adjustable", "admired", "adult", "adverse", "advised" ]}寻找解决方法。哦,是的,它只是JSON文件的一小部分。
1 回答
![?](http://img1.sycdn.imooc.com/5458643d0001a93c02200220-100-100.jpg)
UYOU
TA贡献1878条经验 获得超4个赞
String word1 = jsonArray.getJSONObject(id1).getString("adjs");
变量jsonArray包含一个JSONArray,其中包含字符串,而不是嵌套JSONObject的。你想要的是
String word1 = jsonArray.getString(id1);
您实际编写的代码期望采用以下形式的JSON:
{
"description": "A list of English adjectives.",
"adjs":
[
{ "adjs": "Aristotelian" },
{ "adjs": "Arthurian" },
...
]
}
"adjs"在您的代码中两次提及密钥可能是一个线索:-)
添加回答
举报
0/150
提交
取消