java - 如何使用 java、JSON 获取一个国家的 covid 信息
问题描述
我正在制作一个 java 文件,您可以在其中输入该国家/地区,然后它会向您显示该国家/地区的 covid-19 信息。我正在使用的网站是https://covid19.mathdro.id/api/countries/ 在这里我希望用户输入国家并将国家名称添加到网站例如如果用户输入印度它应该这样做这个 https://covid19.mathdro.id/api/countries/India
任何帮助都是必要的,谢谢
解决方案
您可以使用 Retrofit 调用 API
import okhttp3.OkHttpClient;
import retrofit2.Call;
import retrofit2.GsonConverterFactory;
import retrofit2.Retrofit;
import retrofit2.Response;
public class Retrofit_Example {
public static void main(String[] args) {
OkHttpClient.Builder client = new OkHttpClient.Builder();
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://covid19.mathdro.id/")
.addConverterFactory(GsonConverterFactory.create())
.client(client.build())
.build();
Service service = retrofit.create(Service.class);
Call<Response1> responseCall = service.getData("India");
try {
Response<Response1> response = responseCall.execute();
Response1 apiResponse = response.body();
System.out.println(apiResponse);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
您必须首先从来自 api 的 JSON 响应以及改造客户端创建 POJO。POJO 用于响应
public class Response1 {
private Confirmed confirmed;
private Deaths deaths;
private String lastUpdate;
private Recovered recovered;
public Confirmed getConfirmed() {
return confirmed;
}
public void setConfirmed(Confirmed confirmed) {
this.confirmed = confirmed;
}
public Deaths getDeaths() {
return deaths;
}
public void setDeaths(Deaths deaths) {
this.deaths = deaths;
}
public String getLastUpdate() {
return lastUpdate;
}
public void setLastUpdate(String lastUpdate) {
this.lastUpdate = lastUpdate;
}
public Recovered getRecovered() {
return recovered;
}
public void setRecovered(Recovered recovered) {
this.recovered = recovered;
}
@Override
public String toString() {
return "Response1{" +
"confirmed=" + confirmed +
", deaths=" + deaths +
", lastUpdate='" + lastUpdate + '\'' +
", recovered=" + recovered +
'}';
}
}
public class Recovered {
private String detail;
private Long value;
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Long getValue() {
return value;
}
public void setValue(Long value) {
this.value = value;
}
@Override
public String toString() {
return "Recovered{" +
"detail='" + detail + '\'' +
", value=" + value +
'}';
}
}
public class Deaths {
private String detail;
private Long value;
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Long getValue() {
return value;
}
public void setValue(Long value) {
this.value = value;
}
@Override
public String toString() {
return "Deaths{" +
"detail='" + detail + '\'' +
", value=" + value +
'}';
}
}
public class Confirmed {
private String detail;
private Long value;
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Long getValue() {
return value;
}
public void setValue(Long value) {
this.value = value;
}
@Override
public String toString() {
return "Confirmed{" +
"detail='" + detail + '\'' +
", value=" + value +
'}';
}
}
改造客户
public interface Service {
@GET("/api/countries/{country}")
public Call<Response1> getData(@Path("country")String country);
}
推荐阅读
- mysql - 从具有空数据记录的类型表中选择 *
- c - QoS 不适用于两个以上的实例
- reactjs - React-Pixi 入口/react-pixi 中的掩蔽
- laravel - 使用 Laravel API 资源时如何删除集合中的一些值
- python - 为什么我的 Google Translate API 可以在终端中运行,但不能在可执行文件中运行?
- reactjs - 如何模拟通过 React/Enzyme 中的 onClick 事件调用的类方法回调?
- apache-spark - Spark结构化流检查点大小巨大
- python - 没有 else 语句的 lambda 函数中的单行 if 语句
- php - 如何使用 php 创建电子表格并安装附加组件或将应用程序脚本附加到谷歌驱动器中的电子表格
- kubernetes-ingress - Minikube 与 Ingress 本地镜像配置