简体   繁体   中英

org.json.JSONException: No value for results

I'm trying to parse some data from my server using PHP into a ListView on Android Studio using JSONObject and JSONArrays and am getting an error in a for loop when trying to place the JSON into an object with the error being 'No value for results' despite outputting the JSON array earlier with it showing the data there.

Loop:

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);
}

Error:

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

That line being with 'results' being the name of my JSONArray: JSONObject classObj = getObj.getJSONObject("results");

Am I missing something really obvious?

You have already got the array now all you need is individual array, no need to get array again because its not there.

Change the for loop like this

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);
}

Try this

 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);
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM