Convert from JSONArray to ArrayList<CustomObject> - Android

You can convert your JsonArray or json string to ArrayList<OBJECT> using Gson library as below

ArrayList<OBJECT> yourArray = new Gson().fromJson(jsonString, new TypeToken<List<OBJECT>>(){}.getType());

//or

ArrayList<OBJECT> yourArray = new Gson().fromJson(myjsonarray.toString(), new TypeToken<List<OBJECT>>(){}.getType());

Also while converting your ArrayList<OBJECT> to JsonArray, no need to convert it to string and back to JsonArray

 JsonArray myjsonarray = new Gson().toJsonTree(MyArrayList<OBJECT>).getAsJsonArray();

Refer Gson API documentation for more details. Hope this will be helpful.


JSONArray is just a subclass of object, so if you want to get the JSONObjects out of a JSONArray into some other form, JSONArray doesn't have any convenient way to do it, so you have to get each JSONObject and populate your ArrayList yourself.

Here is a simple way to do it:

ArrayList<JSONObject> arrayList = new ArrayList(myJSONArray.length());
for(int i=0;i < myJSONArray.length();i++){
    arrayList.add(myJSONArray.getJSONObject(i));
}

EDIT:

OK, you edited your code to show that you are using GSON. That is a horse of a different color. If you use com.google.gson.JsonArray instead of JSONArray, you can use the Gson.fromJson() method to get an ArrayList.

Here is a link: Gson - convert from Json to a typed ArrayList