如何在Retrofit的响应中访问特定元素

时间:2017-06-01 15:35:37

标签: java android arraylist retrofit2

我正在使用Retrofit查询API,答案是这个

[
{
    "Id": "BT00",
    "Text": "Registrarme"
},
{
    "Id": "BT01",
    "Text": "Iniciar sesión"
},
{
    "Id": "BT02",
    "Text": "Siguiente"
},
{
    "Id": "BT03",
    "Text": "Si"
},
{
    "Id": "BT04",
    "Text": "No"
}
]

并且身体反应看起来像screenshot

此调用存储在ArrayList中。

@SerializedName("Id")
@Expose
private String id;
@SerializedName("Text")
@Expose
private String text;
//Getters&Setters

我的回答是,如何访问响应的元素?

我尝试了以下方法,但它不起作用

apptext_id.setText(response.body().get(0).toString());
Logger.d("Body %s", response.body().get(0).toString());
Logger.d("Body %s", response.body().get(0));

答案看起来像this

1 个答案:

答案 0 :(得分:0)

获取列表的第一个元素需要做的是:response.body().get(0).getText();

如果您需要每个项,则需要:

if (response.isSuccessful()) {

    List<AppTextModel> list_elements = response.body();
    for (AppTextModel item : list_elements) {
        Logger.d("Body %s", item.getText()); // print every text item in list
    }
}

您还需要在POJO课程中:

public class AppTextModel {

    @SerializedName("Id")
    @Expose
    private String id;
    @SerializedName("Text")
    @Expose
    private String text;

    //Getters&Setters

    public String getText() {
        return text; 
    }
}