Android 如何使用2从服务器获取list.size内部数据对象?
我使用的是Reformation2,这里我从服务器检索数据对象,它给出了内部对象的列表,以及如何知道列表的大小。该列表将提供对象,以便通过这些对象可以检索阵列中的客户端数据Android 如何使用2从服务器获取list.size内部数据对象?,android,retrofit2,Android,Retrofit2,我使用的是Reformation2,这里我从服务器检索数据对象,它给出了内部对象的列表,以及如何知道列表的大小。该列表将提供对象,以便通过这些对象可以检索阵列中的客户端数据 { "data": [{ "ClientName": "Shoib hasan", "CompanyName": "097676", "CityName": "Badin", "ContactNo": "sfgt", "TotalBala
{
"data": [{
"ClientName": "Shoib hasan",
"CompanyName": "097676",
"CityName": "Badin",
"ContactNo": "sfgt",
"TotalBalance": "11000.00",
"AddedOn": "2017-07-18"
}, {
"ClientName": "Musakan Chappal",
"CompanyName": "Muskan Chappal",
"CityName": "Badin",
"ContactNo": "",
"TotalBalance": "15000.00",
"AddedOn": "2017-07-18"
}]
}
我从类数据中检索数据对象
Data data = response.body;
public class Datum {
@SerializedName("ClientName")
@Expose
private String clientName;
@SerializedName("CompanyName")
@Expose
private String companyName;
@SerializedName("CityName")
@Expose
private String cityName;
@SerializedName("ContactNo")
@Expose
private String contactNo;
@SerializedName("TotalBalance")
@Expose
private String totalBalance;
@SerializedName("AddedOn")
@Expose
private String addedOn;
public String getClientName() {
return clientName;
}
public void setClientName(String clientName) {
this.clientName = clientName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getContactNo() {
return contactNo;
}
public void setContactNo(String contactNo) {
this.contactNo = contactNo;
}
public String getTotalBalance() {
return totalBalance;
}
public void setTotalBalance(String totalBalance) {
this.totalBalance = totalBalance;
}
public String getAddedOn() {
return addedOn;
}
public void setAddedOn(String addedOn) {
this.addedOn = addedOn;
}
}
现在获取数据对象中存在的列表大小
Data data = response.body;
public class Datum {
@SerializedName("ClientName")
@Expose
private String clientName;
@SerializedName("CompanyName")
@Expose
private String companyName;
@SerializedName("CityName")
@Expose
private String cityName;
@SerializedName("ContactNo")
@Expose
private String contactNo;
@SerializedName("TotalBalance")
@Expose
private String totalBalance;
@SerializedName("AddedOn")
@Expose
private String addedOn;
public String getClientName() {
return clientName;
}
public void setClientName(String clientName) {
this.clientName = clientName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getCityName() {
return cityName;
}
public void setCityName(String cityName) {
this.cityName = cityName;
}
public String getContactNo() {
return contactNo;
}
public void setContactNo(String contactNo) {
this.contactNo = contactNo;
}
public String getTotalBalance() {
return totalBalance;
}
public void setTotalBalance(String totalBalance) {
this.totalBalance = totalBalance;
}
public String getAddedOn() {
return addedOn;
}
public void setAddedOn(String addedOn) {
this.addedOn = addedOn;
}
}
这是一个示例类
public class Example {
@SerializedName("data")
@Expose
private List<Datum> data ;
public List<Datum> getData() {
return data;
}
public void setData(List<Datum> data) {
this.data = data;
}
}
公共类示例{
@SerializedName(“数据”)
@暴露
私人名单数据;
公共列表getData(){
返回数据;
}
公共无效设置数据(列表数据){
这个数据=数据;
}
}
这是活动中的方法
public void fetch_information(String CityId) {
this.CityID = CityId;
ApiInterface = ApiClient.getApiClient().create(Api.class);
Call<Example> call = ApiInterface.GetClients(CityID);
call.enqueue(new Callback<Example>() {
@Override
public void onResponse(Call<Example> call, Response<Example> response) {
data = new Example();
data.setData(response.body().getData());
Integer clientlist_size = response.body().getData().size();
prepareClientsData();
}
@Override
public void onFailure(Call<Example> call, Throwable t) {
}
});
}
public void prepareClientsData() {
clients = new String[data.getData().size()];
for(int i = 0; i<data.getData().size();i++){
clients[i] = data.getData().get(i).getClientName();
}
client_adapter = new ArrayAdapter<String>(EzKhataActivity.this, android.R.layout.simple_list_item_1, clients);
client_adapter.setDropDownViewResource(R.layout.spinner_dropdown_layout);
client_spinner.setAdapter(client_adapter);
public void fetch_信息(字符串CityId){
this.CityID=CityID;
apinterface=ApiClient.getApiClient().create(Api.class);
Call Call=apinterface.GetClients(CityID);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
数据=新示例();
data.setData(response.body().getData());
整数clientlist_size=response.body().getData().size();
prepareClientsData();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}
公共无效准备客户数据(){
clients=新字符串[data.getData().size()];
对于(int i=0;i使用这两个类作为您的响应类
基准类
结果类
公共类结果{
@SerializedName(“数据”)
@暴露
私有列表数据=null;
公共列表getData(){
返回数据;
}
公共无效设置数据(列表数据){
这个数据=数据;
}
}
在改装界面中使用结果类作为签名。
并使用response.body().getData().size()
作为列表中对象的数量。
查看更多解释。您可以将响应转换为jsonobject并获得如下json数组大小:
JsonObject jsonObject = (JsonObject) response.body();
JsonArray result = jsonObject.getAsJsonArray("data");
int size = result.size();
你的Data
类是什么?Data=new Example();Data.setData(response.body().getData());Integer clientlist_size=response.body().getData().size();这使数据数组列表大小为0;示例是什么?示例是改装接口中的一个类作为签名,就像上面提到的结果类一样,即data=new Result();data.setData(response.body().getData());我得到的响应是作为数据对象的,但它是空的。我确实发布了大部分响应,而且图像将显示我得到的结果。问题不在于代码,它工作正常问题在于Api接口,我正在传递@post(“ClientsInCity”)调用GetClients(@Query“city”字符串CityId);而应该是Call GetClients(@Field“city”字符串CityId);