1

Я использую Дооснащение для моего Android приложения, назвав его так:Итерация ответа Retrofit

RestAdapter restAdapter = new RestAdapter.Builder() 
     .setEndpoint(BASE_URL) 
     .build(); 

ApiEndpointInterface apiService = restAdapter.create(ApiEndpointInterface.class); 

apiService.getFeed(9, new Callback<Post>() { 

    @Override 
    public void success(Post post, Response response) { 
     // loop 
    } 

    @Override 
    public void failure(RetrofitError retrofitError) { 
     retrofitError.printStackTrace(); 
    } 
}); 

JSON отформатированного как это:

{ 
    "success":true, 
    "data":[ 
     { 
      "id":"1", 
      "user_id":"2", 
      "message":"Hello, world!" 
     }, 
     { 
      "id":"2", 
      "user_id":"1", 
      "message":"Another hello!" 
     } 
    ] 
} 

Как я могу перебирать каждый элемент и, например, распечатать свое сообщение на консоли? Каждый товар относится к модели Post:

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 

public class Post { 
    public String id; 
    public String userId; 
    public String message; 

    public String getMessage() { 
     return message; 
    } 
} 
+0

Вы можете добавить свой класс модели? В соответствии с вашим модельным классом я помогу вам. –

+0

Отредактировано оригинальное сообщение, чтобы включить модель. – user5213685

ответ

1

Ваш основной класс модели выглядит следующим образом.

public class Post { 
     private String success; 
     private List<data> data; 

     public List<data> getData() { 
      return data; 
     } 
    } 

Вот ваши данные class.You нужно создать еще один класс для получения JSon arary (Для вас это данные.)

public class data { 
    public String id; 
    public String userId; 
    public String message; 

    public String getMessage() { 
     return message; 
    } 
} 

apiService.getFeed(9, new Callback<Post>() { 

    @Override 
    public void success(Post post, Response response) { 
     post.getData().getPositoin(YourPosition).getMessage(); //or you can use for loop 

    } 

    @Override 
    public void failure(RetrofitError retrofitError) { 
     retrofitError.printStackTrace(); 
    } 
}); 
Смежные вопросы