org.json.JSONException:结果没有值


org.json.JSONException: No value for results

我正在尝试使用 PHP 将服务器中的一些数据解析为 JSON 和 JSONArrays 上的 Android Studio 上的 ListView,并且在尝试将 JSON 放入对象时在 for 循环中出现错误,错误为"结果无值",尽管之前输出了 JSON 数组并在那里显示数据。

圈:

Log.d("json: ", result);
JSONObject jsonObject = new JSONObject(result);
JSONArray jsonArray = jsonObject.getJSONArray("results");
for (int i = 0; i<1; i++){//<jsonArray.length()-1
    JSONObject getObj = jsonArray.getJSONObject(i);
    JSONObject classObj = getObj.getJSONObject("results");
    Classes dailyClasses = new Classes();
    dailyClasses.setClass_id("" + classObj.getString("id"));
    dailyClasses.setClass_name("" + classObj.getString("name"));
    dailyClasses.setClass_room("" + classObj.getString("room"));
    dailyClasses.setClass_day("" + classObj.getString("day"));
    dailyClasses.setClass_time("" + classObj.getString("time"));
    classList.add(dailyClasses);
}

错误:

02-04 17:45:48.830 23024-23047/com.example.cameron.projectapp W/System.err: org.json.JSONException: No value for results

那行是"结果"是我的 JSONArray 的名称: JSONObject classObj = getObj.getJSONObject("results");

我错过了一些非常明显的东西吗?

你现在已经有了数组,你所需要的只是单个数组,不需要再次获取数组,因为它不存在。

像这样更改for循环

for (int i = 0; i<jsonArray.length(); i++){
    JSONObject classObj = jsonArray.getJSONObject(i);
    Classes dailyClasses = new Classes();
    dailyClasses.setClass_id("" + classObj.getString("id"));
    dailyClasses.setClass_name("" + classObj.getString("name"));
    dailyClasses.setClass_room("" + classObj.getString("room"));
    dailyClasses.setClass_day("" + classObj.getString("day"));
    dailyClasses.setClass_time("" + classObj.getString("time"));
    classList.add(dailyClasses);
}

试试这个

 for (int i = 0; i<1; i++){//<jsonArray.length()-1
            JSONObject classObj = jsonArray.getJSONObject(i);

            Classes dailyClasses = new Classes();
            dailyClasses.setClass_id("" + classObj.getString("id"));
            dailyClasses.setClass_name("" + classObj.getString("name"));
            dailyClasses.setClass_room("" + classObj.getString("room"));
            dailyClasses.setClass_day("" + classObj.getString("day"));
            dailyClasses.setClass_time("" + classObj.getString("time"));
            classList.add(dailyClasses);
        }