JSON Array iteration in Android/Java JSON Array iteration in Android/Java json json

JSON Array iteration in Android/Java


I think this code is short and clear:

int id;String name;JSONArray array = new JSONArray(string_of_json_array);for (int i = 0; i < array.length(); i++) {    JSONObject row = array.getJSONObject(i);    id = row.getInt("id");    name = row.getString("name");}

Is that what you were looking for?


I have done it two different ways,

1.) make a Map

        HashMap<String, String> applicationSettings = new HashMap<String,String>();        for(int i=0; i<settings.length(); i++){            String value = settings.getJSONObject(i).getString("value");            String name = settings.getJSONObject(i).getString("name");            applicationSettings.put(name, value);        }

2.) make a JSONArray of names

    JSONArray names = json.names();    JSONArray values = json.toJSONArray(names);    for(int i=0; i<values.length(); i++){        if (names.getString(i).equals("description")){            setDescription(values.getString(i));        }        else if (names.getString(i).equals("expiryDate")){            String dateString = values.getString(i);            setExpiryDate(stringToDateHelper(dateString));         }        else if (names.getString(i).equals("id")){            setId(values.getLong(i));        }        else if (names.getString(i).equals("offerCode")){            setOfferCode(values.getString(i));        }        else if (names.getString(i).equals("startDate")){            String dateString = values.getString(i);            setStartDate(stringToDateHelper(dateString));        }        else if (names.getString(i).equals("title")){            setTitle(values.getString(i));        }    }


Unfortunately , JSONArray doesn't support foreach statements, like:

for(JSONObject someObj : someJsonArray) {    // do something about someObj    ....    ....}