当前位置: 首页 > 知识库问答 >
问题:

应为BEGIN\u数组,但在第1行第2列路径处为BEGIN\u对象$

盖斌
2023-03-14

我找到了一些解决方案,但我真的不知道如何开始。

"Result": [
        {
            "id": 487749,
            "deliveryid": 71472,
            "salestransactiondetailsid": 680089,

这是我的密码。

接口

@GET("api/Ontrack/Delivery")
Call<List<Delivery>> getDeliveryDetails();

主要活动

    call.enqueue(new Callback<List<Delivery>>() {
        @Override
        public void onResponse(Call<List<Delivery>> call, Response<List<Delivery>> response) {
            List<Delivery> get_delivery_details = response.body();

            String[] deliveryId = new String[get_delivery_details.size()];

            for (int i = 0; i<get_delivery_details.size(); i++) {
                deliveryId [i] = get_delivery_details.get(i).getDeliveryid();
            }

            listView.setAdapter(
                    new ArrayAdapter<>(
                            getApplicationContext(),
                            android.R.layout.simple_list_item_1,
                            deliveryId
            )
            );
        }

        @Override
        public void onFailure(Call<List<Delivery>> call, Throwable t) {
            Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

共有1个答案

董建德
2023-03-14

根据你得到的回复,你需要两个不同的课程。

class CustomResponse{
  private List<Delivery> Result;

  // getters and setters and constructors
}

class Delivery {
  // your current default class
}

您的界面更改为

@GET("api/Ontrack/Delivery")
Call<CustomResponse> getDeliveryDetails();

当前的一个不起作用,因为它期望一个Delivery项目列表作为响应,但取而代之的是一个名为结果的对象作为第一个项目,即您的响应看起来像这样:

{
  result:....
}

它是预期的

[.....]

如果不想创建2个类,则需要修改响应,使其只返回列表,而不返回结果:。

 类似资料: