我正在使用Retrofit2,在这里我正在从服务器检索数据对象,该数据对象给出了内部存在的对象的列表,以及如何知道列表的大小。该列表将提供对象,因此通过这些对象,我可以检索数组中的客户端数据。
{
"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;
}
}
这是示例类
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;
}
}
这是活动中的方法
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);
这就是我要得到的
答案 0 :(得分:0)
使用这两个类别作为您的回复类别
Datum.class
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;
}
}
Result.class
public class Result{
@SerializedName("data")
@Expose
private List<Datum> data = null;
public List<Datum> getData() {
return data;
}
public void setData(List<Datum> data) {
this.data = data;
}
}
在改造界面中使用Result class
作为签名。
并使用response.body().getData().size()
作为列表中的对象数。
浏览THIS LINK以获得更多说明。
答案 1 :(得分:0)
您可以将响应转换为jsonobject并获取json数组大小,如下所示:
JsonObject jsonObject = (JsonObject) response.body();
JsonArray result = jsonObject.getAsJsonArray("data");
int size = result.size();