如何使用改造获得没有对象键的 JSON 数组
How to get JSON Array without object key using retrofit
我在加载时遇到问题想要从下面的 JSON 检索 url 数据
{
"status": "success",
"message": "This is a message",
"item":{
"id":"1",
"video":{
"url" : [
"https://url1.com",
"https://url1.com",
"https://url1.com"
]
}
}
}
响应数据
public class ResponseData {
@SerializedName("status")
private String status;
@SerializedName("message")
private String message;
@SerializedName("item")
private Item item;
//Getters
}
项目
public class Item {
@SerializedName("id")
private String id;
@SerializedName("video")
private Video video;
//Getters
}
视频
public class Video {
@SerializedName("url")
private List<String> urlList;
//Getters
}
在此之后我应该做什么来获取每个 URL 并将其应用到 Retrofit onResponse 中?
@Override
public void onResponse(@NonNull Call<ResponseData> call, @NonNull Response<ResponseData> response) {
if (response.isSuccessful()) {
ResponseData resp = response.body();
//For the call I want results like the method below
DataFromServer d = new DataFromServer();
d.url = resp.getItem().getVideo().getUrlList().getUrl1(); // I want it like this
}
}
resp.getItem().getVideo().getUrlList().forEach((url) -> {
Log.i("url", url) // you can get each url here
}
);
您基本上是从服务器获取列表。
您不需要密钥即可访问它们。您可以将它们存储在列表中,也可以
list.get(0) - 第一个 url
list.get(1) - 第二个 url
等等。
我在加载时遇到问题想要从下面的 JSON 检索 url 数据
{
"status": "success",
"message": "This is a message",
"item":{
"id":"1",
"video":{
"url" : [
"https://url1.com",
"https://url1.com",
"https://url1.com"
]
}
}
}
响应数据
public class ResponseData {
@SerializedName("status")
private String status;
@SerializedName("message")
private String message;
@SerializedName("item")
private Item item;
//Getters
}
项目
public class Item {
@SerializedName("id")
private String id;
@SerializedName("video")
private Video video;
//Getters
}
视频
public class Video {
@SerializedName("url")
private List<String> urlList;
//Getters
}
在此之后我应该做什么来获取每个 URL 并将其应用到 Retrofit onResponse 中?
@Override
public void onResponse(@NonNull Call<ResponseData> call, @NonNull Response<ResponseData> response) {
if (response.isSuccessful()) {
ResponseData resp = response.body();
//For the call I want results like the method below
DataFromServer d = new DataFromServer();
d.url = resp.getItem().getVideo().getUrlList().getUrl1(); // I want it like this
}
}
resp.getItem().getVideo().getUrlList().forEach((url) -> {
Log.i("url", url) // you can get each url here
}
);
您基本上是从服务器获取列表。
您不需要密钥即可访问它们。您可以将它们存储在列表中,也可以
list.get(0) - 第一个 url
list.get(1) - 第二个 url
等等。