猿问

如何通过改造提取独特的数据

我正在尝试从改造 API 中提取一些数据,它的 JSON 如下所示:


{  

   "data":{  

      "id":"1",

      "type": null,

      "links":{  

         "self":null

      },

      "attributes":{  

         "createdAt":null,

         "updatedAt":null,

         "slug":"teste",

         "synopsis":"text",

然后我尝试获取这样的特定数据:


型号:


public class Data {


    private ArrayList<Movie> data;


    public ArrayList<Movie> getData() {

        return data;

    }


    public void setData(ArrayList<Animes> data) {

        this.data = data;

    }

}



public class Movie {


    private String id;

    private Attributes attributes;


    public String getId() {

        return id;

    }


    public void setId(String id) {

        this.id = id;

    }


    public Attributes getAttributes() {

        return attributes;

    }


    public void setAttributes(Attributes attributes) {

        this.attributes = attributes;

    }

}

服务:


@GET("movie/{id}")

Call<Data> obtainProfile(@Path("id") int id);


int id = getIntent().getIntExtra("ID", 0);

private void obtainData(final int id) {


        ApiService service = retrofit.create(ApiService.class);

        Call<Data> profileCall = service.obtainProfile(id);


        profileCall.enqueue(new Callback<Data>() {

            @Override

            public void onResponse(Call<Data> call, Response<Data> response) {


                if (response.isSuccessful()) {


                    Data data = response.body();

                    Movie Movie = data.getData().get(0);

                    Attributes attributes = movie.getAttributes();


                    textName.setText(attributes.getCanonicalTitle());


                } else {

                    Log.e("INFO", "onResponse" + response.errorBody());

                    Toast.makeText(PerfilActivity.this, "Error connecting to server.", Toast.LENGTH_LONG).show();

                }

            }



我该如何解决这个问题?我试过了,但我无法查看数据。我是否必须为此创建一个列表?我该如何解决这个问题?我试过了,但我无法查看数据。我是否必须为此创建一个列表?


摇曳的蔷薇
浏览 166回答 1
1回答

哈士奇WWW

将您的更改ArrayList<Movie>为 just Movie。还要创建另一个类:public class DataResponse {&nbsp; &nbsp; public Data data;}并将您的 Retrofit 方法更改为:@GET("movie/{id}")Call<DataResponse> obtainProfile(@Path("id") int id);
随时随地看视频慕课网APP

相关分类

Java
我要回答