gpt4 book ai didi

java - 从 JSON 文件中获取随机字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:14 24 4
gpt4 key购买 nike

尝试从此 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 文件的一小部分。

最佳答案

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" 可能是一个线索:-)

关于java - 从 JSON 文件中获取随机字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51255645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com