gpt4 book ai didi

java - 解析JSON多个对象

转载 作者:行者123 更新时间:2023-12-02 13:48:30 26 4
gpt4 key购买 nike

我正在尝试解析下面的 json,但由于出现堆栈溢出错误而无法执行此操作。

这是 JSON -

[{
"Class": "1",
"school": "test",
"description": "test",
"student": [
"Student1",
"Student2"
],
"qualify": true,
"annualFee": 3.00
}]

这是当前失败的代码。

String res  = cspResponse.prettyPrint();
org.json.JSONObject obj = new org.json.JSONObject(res);
org.json.JSONArray arr = obj.getJSONArray(arrayName);
String dataStatus=null;

for (int i = 0; i < arr.length(); i++) {
dataStatus = arr.getJSONObject(i).getString(key);
System.out.println("dataStatus is \t" + dataStatus);
}

用例是:

  1. 获取值键“class”
  2. 从学生那里获取值(value)
  3. 从学校获得值(value)

感谢您的帮助。

更新1使用以下详细信息更新了有关堆栈跟踪的更多信息。cls = 1

错误- org.json.JSONException:JSONObject[“student”]不是字符串。

堆栈跟踪 -

public String getString(String key) throws JSONException {
Object object = this.get(key);
if (object instanceof String) {
return (String) object;
}
throw new JSONException("JSONObject[" + quote(key) + "] not a string.");
}

当我使用以下答案运行代码时,这里学生的失败不是字符串。

我从前两条评论中使用的答案都有相同的错误。我需要你的帮助。

最佳答案

您的 json 片段无效 - 最后一个逗号破坏了解析。但其余的代码是相当可行的。

    String res = "[\n" +
" {\n" +
" \"Class\": \"1\",\n" +
" \"school\": \"test\",\n" +
" \"description\": \"test\",\n" +
" \"student\": [\n" +
" \"Student1\",\n" +
" \"Student2\"\n" +
" ],\n" +
" \"qualify\": true,\n" +
" \"annualFee\": 3.00\n" +
" }\n" +
"]";

JSONArray arr = new JSONArray(res);
for (int i = 0; i < arr.length(); i++) {
JSONObject block = arr.getJSONObject(i);
Integer cls = block.getInt("Class");
System.out.println("cls = " + cls);
Object school = block.getString("school");
System.out.println("school = " + school);
JSONArray students = block.getJSONArray("student");
System.out.println("student[0] = " + students.get(0));
System.out.println("student[1] = " + students.get(1));
}

应该输出

cls = 1
school = test
student[0] = Student1
student[1] = Student2

关于java - 解析JSON多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58179137/

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