【问题标题】:Get data from json using Retrofit [duplicate]使用 Retrofit 从 json 获取数据
【发布时间】:2020-03-07 01:14:43
【问题描述】:

我正在尝试使用 Retrofit 从下面的JSON 获取一些数据:

[
  {
    "country": "China",
    "cases": 80650,
    "todayCases": 98,
    "deaths": 3070,
    "todayDeaths": 28,
    "recovered": 55402,
    "critical": 5737
  },
  {
    "country": "S. Korea",
    "cases": 6593,
    "todayCases": 309,
    "deaths": 43,
    "todayDeaths": 1,
    "recovered": 135,
    "critical": 52
  }
....
]

我试过下面的代码没有成功:

界面

public interface CoronaInterface {
    @GET("all")
    public Call<Resume> getCoronaVirusResumeInformation();

    @GET("countries")
    public Call<Complete> getCoronaVirusCompleteInformation();
}

模型

public class Data {
    @SerializedName("country")
    private String country;
    @SerializedName("recovered")
    private String recovered;
    @SerializedName("cases")
    private String cases;
    @SerializedName("critical")
    private String critical;
    @SerializedName("deaths")
    private String deaths;
    @SerializedName("todayCases")
    private String todayCases;
    @SerializedName("todayDeaths")
    private String todayDeaths;

    public String getCountry() {
        return country;
    }

    public String getRecovered() {
        return recovered;
    }

    public String getCases() {
        return cases;
    }

    public String getCritical() {
        return critical;
    }

    public String getDeaths() {
        return deaths;
    }

    public String getTodayCases() {
        return todayCases;
    }

    public String getTodayDeaths() {
        return todayDeaths;
    }

}


public class Complete {
    private Data[] mData;

    public Data[] getData() {
        return mData;
    }

    public void setData(Data[] mData) {
        this.mData = mData;
    }
}

主活动:

mCallComplete = mCoronaInterface.getCoronaVirusCompleteInformation();
    mCallComplete.enqueue(new Callback<Complete>() {
        @Override
        public void onResponse(@NonNull Call<Complete> call, @NonNull Response<Complete> response) {

        }

        @Override
        public void onFailure(@NonNull Call<Complete> call, @NonNull Throwable t) {
            Toast.makeText(MainActivity.this, "ops", Toast.LENGTH_SHORT).show();
        }
    });

我的问题:我总是在运行时收到 ops 消息。

【问题讨论】:

  • 为什么要敬酒“ops”?吐司错误消息。它会显示api调用失败的错误。
  • 详细描述您收到的消息。

标签: java android json retrofit


【解决方案1】:

显示改造对象。您是否使用例如 Postman 程序测试了您的 api?有效吗?

【讨论】:

    【解决方案2】:

    将“ops”替换为 t.toString() 以查看导致错误的详细信息。如前所述,您需要提供 API 的来源。

    【讨论】:

      猜你喜欢
      • 2019-08-17
      • 2015-12-24
      • 2014-03-14
      • 1970-01-01
      • 2014-01-04
      • 2023-03-28
      • 2019-11-14
      • 2019-05-13
      • 2016-11-18
      相关资源
      最近更新 更多