I need to parse a JSON array from Retrofit. I need to get the following key:
{ "rc":0, "message":"success", "he":[ { "name":"\u05de\u05e4\u05e7\u05d7", "type":0 } ] }
I can easily get the message, but I cannot get the "he" array from the response.
Here is my data model class
public class GetRoleData implements Serializable { @SerializedName("he") private ArrayList<Roles> he; @SerializedName("message") private String message; public GetRoleData() { this.he = new ArrayList<>(); this.message = ""; } public ArrayList<Roles> getUserRoles() { return he; } public String getMessage() { return message; } public class Roles { public Roles() { name = ""; type = -1; } @SerializedName("name") private String name; @SerializedName("type") private int type; public int getType() { return type; } public String getName() { return name; } } }
This is how I send the request to the server:
@POST("index.php/") Call<GetRoleData> getUserRoles(@Body SetParams body);
this is how i send request and response processing
APIService apiService = retrofit.create(APIService.class); Call<GetRoleData > apiCall = apiService.getUserRoles(params); apiCall.enqueue(new Callback<GetRoleData >() { @Override public void onResponse(retrofit.Response<GetRoleData > mUserProfileData, Retrofit retrofit) { Log.e("locale info", "mUserProfileData = " + mUserProfileData.body().toString()); if (pDialog != null) { pDialog.dismiss(); } if (mUserProfileData.body().getMessage().equals("success")) { Log.e("locale info", "user roles = " + mUserProfileData.body().getUserRoles().size()); } else { Toast.makeText(RegisterActivity.this, getResources().getString(R.string.get_role_error), Toast.LENGTH_SHORT).show(); } } @Override public void onFailure(Throwable t) { if (pDialog != null) { pDialog.dismiss(); } t.printStackTrace(); } });
What I want
I need to get the array "he" from the answer above. Please help Thanks.
here is the answer i get ..

source share