Help me with this, please code as follows
Activities
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TaskData taskData= new TaskData(); taskData.setEmail("praik@gmail.com"); Task task= new Task(); task.setTaskData(taskData); Log.v("@@@WWE"," Call Initiated"); task.setTask("getUserDetail"); JSONObject taskDatas= new JSONObject(); JSONObject taskM= new JSONObject(); try { taskDatas.put("email","praik@gmail.com"); taskM.put("task","getUserDetail"); taskM.put("taskData",taskDatas); } catch (JSONException e) { e.printStackTrace(); } Map<String,JSONObject> taskMap= new HashMap<>(); taskMap.put("reqObject",taskM); getUserDetails(taskMap); Log.v("@@@WWE"," Call Over"); } public void getUserDetails(Map<String,JSONObject> task){ ServiceInterfaceApi interfaceApi= ServiceClass.getApiService(); Call<UserList>call=interfaceApi.getUserDetails(task); Log.v("@@@WWE","Retrofit Request Method = "+call.request().method()); Log.v("@@@WWE","Retrofit Request Body = "+call.request().body()); Log.v("@@@WWE","Retrofit Request Url = "+call.request().url()); Log.v("@@@WWE","Retrofit Request executed = "+call.isExecuted()); call.enqueue(new Callback<UserList>() { @Override public void onResponse(Call<UserList> call, Response<UserList> response) { Log.v("@@@","Response"); if (response.isSuccessful()){ Log.v("@@@","Sucess"); userList=response.body().getUserData(); for (int i = 0; i < userList.size(); i++) { UserDatum userDatum=userList.get(i); Log.v("@@@@WWE"," USer Email "+userDatum.getEmail()); Log.v("@@@@WWE"," USer Name "+userDatum.getName()); Log.v("@@@@WWE"," USer Gender "+userDatum.getGender()); } } if(response.code()==400){ Toast.makeText(Home.this,"400 code ",Toast.LENGTH_LONG).show(); } } @Override public void onFailure(Call<UserList> call, Throwable t) { Log.v("@@@WWE","Failure "+t.getMessage()); } }); }
Service interface
@Headers("Content-Type: application/json") @POST("index.php") Call<UserList>getUserDetails(@QueryMap Map<String,JSONObject> stringTaskMap);
Class of service
public class ServiceClass { public ServiceClass() { } private static Retrofit getRetroClient(){ Gson gson = new GsonBuilder() .setLenient() .create(); return new Retrofit.Builder() .baseUrl(HttpConstants.baseUrl) .addConverterFactory(GsonConverterFactory.create(gson)) .build(); } public static ServiceInterfaceApi getApiService(){ return getRetroClient().create(ServiceInterfaceApi.class); } }
Pojo Class:
public class UserList { @SerializedName("userData") @Expose private List<UserDatum> userData = null; @SerializedName("code") @Expose private Integer code; @SerializedName("message") @Expose private String message; public List<UserDatum> getUserData() { return userData; } public void setUserData(List<UserDatum> userData) { this.userData = userData; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } public class UserDatum { @SerializedName("email") @Expose private String email; @SerializedName("password") @Expose private String password; @SerializedName("name") @Expose private String name; @SerializedName("image") @Expose private String image; @SerializedName("mobile") @Expose private String mobile; @SerializedName("birth_date") @Expose private String birthDate; @SerializedName("dateofregister") @Expose private String dateofregister; @SerializedName("gender") @Expose private String gender; public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getBirthDate() { return birthDate; } public void setBirthDate(String birthDate) { this.birthDate = birthDate; } public String getDateofregister() { return dateofregister; } public void setDateofregister(String dateofregister) { this.dateofregister = dateofregister; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } }
Expected response
{"userData":[{"email":"foo@mail.com","password":"12345","name":"foo bar","image":"foo","mobile":"123","birth_date":"12345646","dateofregister":"1493706304000","gender":"male"}],"code":200,"message":"DONE"}
here is my error message Error java.lang.IllegalStateException: expected BEGIN_OBJECT, but there was STRING on row 6, column 1 path $ Thanks in Advance