How to parse JSON Array (Not Json Object) in Android
use the following snippet to parse the JsonArray.
JSONArray jsonarray = new JSONArray(jsonStr);for (int i = 0; i < jsonarray.length(); i++) { JSONObject jsonobject = jsonarray.getJSONObject(i); String name = jsonobject.getString("name"); String url = jsonobject.getString("url");}
I'll just give a little Jackson example:
First create a data holder which has the fields from JSON string
// imports// ...@JsonIgnoreProperties(ignoreUnknown = true)public class MyDataHolder { @JsonProperty("name") public String mName; @JsonProperty("url") public String mUrl;}
And parse list of MyDataHolders
String jsonString = // your jsonObjectMapper mapper = new ObjectMapper();List<MyDataHolder> list = mapper.readValue(jsonString, new TypeReference<ArrayList<MyDataHolder>>() {});
Using list items
String firstName = list.get(0).mName;String secondName = list.get(1).mName;
public static void main(String[] args) throws JSONException { String str = "[{\"name\":\"name1\",\"url\":\"url1\"},{\"name\":\"name2\",\"url\":\"url2\"}]"; JSONArray jsonarray = new JSONArray(str); for(int i=0; i<jsonarray.length(); i++){ JSONObject obj = jsonarray.getJSONObject(i); String name = obj.getString("name"); String url = obj.getString("url"); System.out.println(name); System.out.println(url); } }
Output:
name1url1name2url2