问题描述
我有一个问题,我的数据不固定,有时数据会发生变化。我正在尝试创建一个响应类而不在类中创建键或 getter/setter 方法。 没有这个:
(@Serializedname("Sr No")@Exposeprivate Integer srNo;)
"data": [
{
"Sr No": 6,"Status": "Not Approved","URN_No": "MOA04A000401","Date": "28/12/2020","Doc No": "Exp/20-21/37","Account Name": "ABC ENTERPRISE LTD.","Category": "Export","City": "Ahmedabad"
},{
......
......
}
"data": [
{
"Sr No": 6,"Urn_No": "MOA04A000401","City": "Bomby","State": "Maharastra"
"Contry": "India"
},{
......
......
}
]
邮递员数据(此数据不稳定,此数据有时会发生变化):
{
"settings": {
"success": "1","message": "Data found successfully.","fields": [
"Sr No","Status","URN_No","Date","Doc No","Account Name","Category","City"
]
},"data": [
{
"Sr No": 6,{
"Sr No": 64,"URN_No": "MOA04A000400","Doc No": "Dom/20-21/128","Account Name": "KINJAL CHEMICALS","Category": "Domestic","City": "Ahmedabad"
}
]
}
响应类:
public class ReportApplyNowResponse implements Serializable {
@Serializedname("settings")
@Expose
private Settings settings;
@Serializedname("data")
@Expose
private List<Data> data = null;
public Settings getSettings() {
return settings;
}
public void setSettings(Settings settings) {
this.settings = settings;
}
public List<Data> getData() {
return data;
}
public void setData(List<Data> data) {
this.data = data;
}
public class Settings implements Serializable {
@Serializedname("success")
@Expose
private String success;
@Serializedname("message")
@Expose
private String message;
@Serializedname("fields")
@Expose
private List<String> fields = null;
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<String> getFields() {
return fields;
}
public void setFields(List<String> fields) {
this.fields = fields;
}
}
public class Data implements Serializable{
// For ex: I will remove "Sr no",then "Sr no" not arrive in response
@Serializedname("Sr No")
@Expose
private Integer srNo;
@Serializedname("Status")
@Expose
private String status;
@Serializedname("Urn_no")
@Expose
private String urnNo;
@Serializedname("Date")
@Expose
private String date;
@Serializedname("Doc No")
@Expose
private String docNo;
@Serializedname("Account Name")
@Expose
private String accountName;
@Serializedname("Lead_Soruce")
@Expose
private String leadSoruce;
@Serializedname("Category")
@Expose
private String category;
@Serializedname("City")
@Expose
private String city;
@Serializedname("Sales Executive")
@Expose
private String salesExecutive;
@Serializedname("Industry")
@Expose
private String industry;
public Integer getSrNo() {
return srNo;
}
public void setSrNo(Integer srNo) {
this.srNo = srNo;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getUrnNo() {
return urnNo;
}
public void setUrnNo(String urnNo) {
this.urnNo = urnNo;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getDocNo() {
return docNo;
}
public void setDocNo(String docNo) {
this.docNo = docNo;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getLeadSoruce() {
return leadSoruce;
}
public void setLeadSoruce(String leadSoruce) {
this.leadSoruce = leadSoruce;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getSalesExecutive() {
return salesExecutive;
}
public void setSalesExecutive(String salesExecutive) {
this.salesExecutive = salesExecutive;
}
public String getIndustry() {
return industry;
}
public void setIndustry(String industry) {
this.industry = industry;
}
}
}
restCall.reportApplyNow("13",reportsName,String.valueOf(jsonElement))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.newThread())
.subscribe(new Subscriber<ReportApplyNowResponse>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
tools.stopLoading();
Tools.toast(getActivity(),/* e.getMessage()*/ getString(R.string.something_went_wrong),VariableBag.Error);
}
});
}
@Override
public void onNext(ReportApplyNowResponse reportApplyNowResponse) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
tools.stopLoading();
if (!reportApplyNowResponse.getSettings().getSuccess().equals("") && reportApplyNowResponse.getSettings().getSuccess().equalsIgnoreCase(VariableBag.SUCSESS_CODE)) {
if (reportApplyNowResponse.getData() != null && reportApplyNowResponse.getData().size() > 0) {
Tools.toast(getContext(),reportApplyNowResponse.getSettings().getMessage(),VariableBag.success);
Bundle bundle = new Bundle();
bundle.putSerializable("reprtViewResponse",reportApplyNowResponse);
Intent intent = new Intent(getContext(),ReportViewActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
} else {
//tools.stopLoading();
Tools.toast(getContext(),VariableBag.Error);
// Tools.toast(FollowUpActivity.this,getFollowupListingDashboardResponse.getSettings().getMessage(),VariableBag.Error);
//showDataView(reportsListResponse.getSettings().getMessage());
}
}
});
}
});
RestCall:
@FormUrlEncoded
@POST("Mobile_Api_Applay")
Single<ReportApplyNowResponse> reportApplyNow(
@Field("user_id") String user_id,@Field("Report_Name") String Report_Name,@Field("ReportFieldsstring") String ReportFieldsstring
);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)