通过Retrofit响应迭代

时间:2015-08-11 05:50:28

标签: android android-fragments android-activity android-studio retrofit

我正在为我的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;
    }
}

1 个答案:

答案 0 :(得分:1)

您的主要模型类看起来像这样。

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

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

这是你的数据类。你需要创建另一个类来检索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();
    }
});