2015-06-30 2 views
0

Я называю обслуживание и ответы что-то вроде этого:ответ дооснащения и собственно POJO (Plain Old Java Object)

[ 
    { 
     "CreateDate": null, 
     "Creator": 0, 
     "Id": 1, 
     "LastModifiedDate": null, 
     "Modifier": 0, 
     "Description": null, 
     "Name": "test0" 
    }, 
    { 
     "CreateDate": null, 
     "Creator": 0, 
     "Id": 2, 
     "LastModifiedDate": null, 
     "Modifier": 0, 
     "Description": null, 
     "Name": "test2" 
    }, 
    { 
     "CreateDate": null, 
     "Creator": 1, 
     "Id": 3, 
     "LastModifiedDate": null, 
     "Modifier": 1, 
     "Description": null, 
     "Name": "test1" 
    } 
] 

Я хочу создать соответствующий объект для этого, так что я создал два класса, как следующее:

documentListWrapper

public class DocumentListWrapper { 
List<DocumentList> documentListList; 

}

documentList

public class DocumentList { 
    //others field not needed 
    int Id; 
    String Name; 

} 

Но когда я называю обслуживание всегда проваливались и перейти к методу отказа моей службы, и это бросает:

D/Retrofit﹕ Content-Type: application/json; charset=utf-8 
D/Retrofit﹕ Server: Microsoft-IIS/8.5 
D/Retrofit﹕ X-Powered-By: ASP.NET 
D/Retrofit﹕ Date: Tue, 30 Jun 2015 06:33:26 GMT 
D/Retrofit﹕ Content-Length: 355 
D/Retrofit﹕ Connection: Keep-Alive 
D/Retrofit﹕ [{"CreateDate":null,"Creator":0,"Id":1,"LastModifiedDate":null,"Modifier":0,"Description":null,"Name":"test0"},{"CreateDate":null,"Creator":0,"Id":2,"LastModifiedDate":null,"Modifier":0,"Description":null,"Name":"test1"},{"CreateDate":null,"Creator":1,"Id":3,"LastModifiedDate":null,"Modifier":1,"Description":null,"Name":"test2"}] 
D/Retrofit﹕ <--- END HTTP (355-byte body) 

** Отредактировано: **

Услуги:

@GET("/DocumentTypeList1") 
void documentTypeList1(
     @Query("userName") String userName, 
     @Query("password") String password, Callback<DocumentListWrapper> callback); 

serviceHelper cl жопа:

 public static final int TIMEOUT_CONNECTION = 6000; 
    public static final int TIMEOUT_SOCKET = 30000; 

    private static ServiceHelper instance = new ServiceHelper(); 
    RestAdapter restAdapter; 
    IocService service; 

    private ServiceHelper() { 
     restAdapter = createAdapter(); 
     service = restAdapter.create(IocService.class); 
    } 

    public static ServiceHelper getInstance() { 
     return instance; 
    } 

    private RestAdapter createAdapter() { 

     HttpParams httpParameters = new BasicHttpParams(); 
     // Set the timeout in milliseconds until a connection is established. 
     // The default value is zero, that means the timeout is not used. 
     HttpConnectionParams.setConnectionTimeout(httpParameters, TIMEOUT_CONNECTION); 
     // Set the default socket timeout (SO_TIMEOUT) 
     // in milliseconds which is the timeout for waiting for data. 
     HttpConnectionParams.setSoTimeout(httpParameters, TIMEOUT_SOCKET); 
     DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 

     return new RestAdapter.Builder() 
       .setEndpoint(ENDPOINT) 
       .setLogLevel(RestAdapter.LogLevel.FULL) 
       .setClient(new ApacheClient(httpClient)) 
       .build(); 
    } 
} 

public void documentTypeList1(String userName,String password,Callback<DocumentListWrapper> callback){ 
     service.documentTypeList1(userName,password,callback); 

и я называю обслуживание с методами, как это:

public void documentListType(){ 
    ServiceHelper.getInstance().documentTypeList1("userName", "password", new Callback<DocumentList>() { 
     @Override 
     public void success(DocumentListWrapper documentListWrapper, Response response) { 

     } 

     @Override 
     public void failure(RetrofitError retrofitError) { 

     } 
    }); 
} 

Мой вопрос: Что-то случилось с моим классом объекта или его вызовом службы или ...?

+0

Кажется, ваш класс объектов в порядке. Можете ли вы показать вызов «Дооснащение»? – nicopasso

+0

@nicopasso Спасибо, см. Мой отредактированный вопрос :) – Amir

ответ

1

Я использую ответ List для ответа массива, и он отлично работает.

@GET("/DocumentTypeList1") 
void documentTypeList1(
     @Query("userName") String userName, 
     @Query("password") String password, Callback<List<DocumentList>> callback); 
+0

Мой документListWrapper делает то же самое, не так ли? – Amir

+1

idk, но, возможно, если 'DocumentListWrapper' работает, json выглядит как' {"documentListList": [...]} ' – ytRino

Смежные вопросы