java - 从 JSONArray 中提取字符串

标签 java json android-studio

我正在尝试构建一个有趣的测验游戏,但我正在努力弄清楚如何从 Android Studio 中的 JSONArray 中提取我想要的字符串

我在 Logcat 中获取了“JSON”和“结果”的日志,但我似乎无法弄清楚如何将我的 mQuestion 变量设置为相关字符串。

JSON

{
"response_code":0,
"results":[{
    "category":"General Knowledge",
    "type":"multiple",
    "difficulty":"medium",
    "question":"According to the BBPA, what is the most common pub name in the UK?",
    "correct_answer":"Red Lion",
    "incorrect_answers": [ 
        "Royal Oak",
        "White Hart",
        "King's Head"
     ]
}]
}

我的代码

@Override
protected void onPostExecute(String s) {
   super.onPostExecute(s);
   Log.i("JSON", s);

   try {
        JSONObject jsonObject = new JSONObject(s);
        String results = jsonObject.getString("results");
        Log.i("results", results);
        JSONArray arr = new JSONArray(results);
        for (int i = 0; i < arr.length(); i++) {
            mQuestion = arr.getJSONObject(3).getString("question");

            Log.i("Question", mQuestion);
        }


        } catch (Exception e) {
            e.printStackTrace();
        }

    }

我在 Logcat 中得到的是 W/System.err: at ...MainActivity$getQuestion.onPostExecute(MainActivity.java:67)

67 是包含“mQuestion = arr.getJSONObject(3).getString("question");”的行

最佳答案

您需要使用在循环中声明的i:

  mQuestion = arr.getJSONObject(i).getString("question");

关于java - 从 JSONArray 中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54184163/

相关文章:

Java- FileWriter/BufferedWriter - 附加到文本文件的末尾?

java - 使用 Selenium WebDriver 进行 PrimeFaces fileUpload 测试

java - JAXB un/marshalling : Is there a difference between using arrays and lists?

javascript - 比较两个数组对象数据并作为一个对象合并到 javascript 中的数组中?

android - 那么下一步按钮在新的 Activity 窗口中不起作用

java - 在函数内创建/调用函数

java - 对 REST 端点进行单元测试的最佳方法是什么( Jersey )

java - 使用 GSON 和 Hibernate 存储任意数据

java - 有没有办法用 MLKit 检测文本的大小

Android Studio - Kotlin 测试抛出 - 找不到类 - 空测试套件