Your response data is an array. You need parse to a JSONArray like below:
JSONArray jsonArray = new JSONArray(response);
if you want to read data by key you can do like below:
for (int index = 0; index < jsonArray.length(); index++) {
JSONObject object = jsonArray.optJSONObject(index);
if (object != null) {
String name = object.optString("name");
String number = object.optString("number");
String entity = object.optString("entity");
}
}
But now I offen using Gson to Parse data to a object. See next.
Step 1: Add the following line to your Gradle configuration
dependencies {
compile 'com.google.code.gson:gson:2.8.0'
}
Step 2: Define UserModel class like this
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class UserModel {
@SerializedName("name")
@Expose
private String name;
@SerializedName("number")
@Expose
private String number;
@SerializedName("entity")
@Expose
private String entity;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getEntity() {
return entity;
}
public void setEntity(String entity) {
this.entity = entity;
}
}
Step 3: On the onResponse method change to bellow:
Gson gson = new GsonBuilder().create();
ArrayList<UserModel> models = gson.fromJson(response, new TypeToken<ArrayList<UserModel>>() {
}.getType());
now you can access your data like this
if (models != null && models.size() > 0) {
for (int i = 0; i < models.size(); i++) {
UserModel user = models.get(i);
user.getName();
user.getEntity();
user.getNumber();
}
}