2016-01-16 2 views
1

Я пытаюсь разобрать JSON из апи http://badiyajobs.com/apis/v1/roles
но response.isSuccess возвращает ложь
мой модальный класс,
Невозможно получить JSON объект и массив в Модернизированный 2

package arpit.retrodemo; 


import java.util.List; 
import java.util.ArrayList; 

public class Modal {   

    private List<RolesEntity> roles = new ArrayList<>(); 

    public void setRoles(List<RolesEntity> roles) { 
     this.roles = roles; 
    } 

    public List<RolesEntity> getRoles() { 
     return roles; 
    } 

    public static class RolesEntity { 
     private String id; 
     private String role; 
     private String description; 
     private String icon_url; 
     private String created_at; 
     private String updated_at; 

     public void setId(String id) { 
      this.id = id; 
     } 

     public void setRole(String role) { 
      this.role = role; 
     } 

     public void setDescription(String description) { 
      this.description = description; 
     } 

     public void setIcon_url(String icon_url) { 
      this.icon_url = icon_url; 
     } 

     public void setCreated_at(String created_at) { 
      this.created_at = created_at; 
     } 

     public void setUpdated_at(String updated_at) { 
      this.updated_at = updated_at; 
     } 

     public String getId() { 
      return id; 
     } 

     public String getRole() { 
      return role; 
     } 

     public String getDescription() { 
      return description; 
     } 

     public String getIcon_url() { 
      return icon_url; 
     } 

     public String getCreated_at() { 
      return created_at; 
     } 

     public String getUpdated_at() { 
      return updated_at; 
     } 
    } 
} 


Sample JSON является,

{"roles":[ 
    { 
     "id":"1", 
     "role":"Retail Sales Executive", 
     "description":"As a sales assistant....", 
     "icon_url":"", 
     "created_at":"2015-10-02 12:03:03", 
     "updated_at":null 
    } 
    ] 
} 


APIService.java есть

package arpit.retrodemo; 

import retrofit.Call; 
import retrofit.http.GET; 

public interface APIService { 
    @GET("/roles") 
    Call<Modal> getDetails(); 
} 


MainActivity.java есть

package arpit.retrodemo; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 


import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 

import retrofit.Call; 
import retrofit.Callback; 
import retrofit.GsonConverterFactory; 
import retrofit.Response; 
import retrofit.Retrofit; 

public class MainActivity extends AppCompatActivity { 

    private static final String ENDPOINT = "http://badiyajobs.com/apis/v1"; 
    private APIService service; 
    private Modal mod; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Retrofit retrofit = new Retrofit.Builder() 
       .addConverterFactory(GsonConverterFactory.create()) 
       .baseUrl(ENDPOINT) 
       .build(); 
     service = retrofit.create(APIService.class); 
     Call<Modal> userList = service.getDetails(); 
     userList.enqueue(new Callback<Modal>() { 
      @Override 
      public void onResponse(Response<Modal> response) { 
       if(response.isSuccess()){ 
        Log.d("findRes", response.body().toString()); 
       }else{ 
        Log.d("find", "Something is wrong! " + response.errorBody().toString()); 
       } 
      } 

      @Override 
      public void onFailure(Throwable t) { 
       Log.d("findError", t.getMessage()); 
      } 
     }); 
    } 
} 


Здесь я получаю следующее на LogCat,

D/find: Something is wrong! [email protected] 


вместо строкового представления response.body()

+0

Можете ли вы просто отладить и проверить ошибку, проверив аргумент ответа в обратном вызове onResponse? –

ответ

1

Y ou необходимо сделать следующее:

public interface APIService { 
    @GET("roles") /*removed the/here */ 
    Call<Modal> getDetails(); 
} 

private static final String ENDPOINT = "http://badiyajobs.com/apis/v1/"; /* added the/here */ 
Смежные вопросы