I'm using retrofit API to get data, and for that, I've created the POJO classes as required.
Here are my POJO classes, 1. Report
@SerializedName("success")
@Expose
private Boolean success;
@SerializedName("data")
@Expose
private List<Datum> data = null;
public Boolean getSuccess() {
return success;
}
public void setSuccess(Boolean success) {
this.success = success;
}
public List<Datum> getData() {
return data;
}
public void setData(List<Datum> data) {
this.data = data;
}
Datum
@SerializedName("_id") @Expose private String id; @SerializedName("seq") @Expose private Integer seq; @SerializedName("imei") @Expose private String imei; @SerializedName("lat") @Expose private String lat; @SerializedName("lon") @Expose private String lon; @SerializedName("etype") @Expose private String etype; @SerializedName("nos") @Expose private String nos; @SerializedName("rssi") @Expose private String rssi; @SerializedName("hac") @Expose private String hac; @SerializedName("spd") @Expose private String spd; @SerializedName("btv") @Expose private String btv; @SerializedName("address") @Expose private String address; @SerializedName("dt") @Expose private String dt; @SerializedName("erpm") @Expose private String erpm; @SerializedName("thpos") @Expose private String thpos; @SerializedName("erntm") @Expose private String erntm; @SerializedName("fgrl") @Expose private String fgrl; @SerializedName("dtml") @Expose private String dtml; @SerializedName("flvl") @Expose private String flvl; @SerializedName("ftype") @Expose private String ftype; @SerializedName("eot") @Expose private String eot; @SerializedName("ect") @Expose private String ect; @SerializedName("odm") @Expose private String odm; @SerializedName("date") @Expose private String date; @SerializedName("__v") @Expose private Integer v; public String getId() { return id; } public void setId(String id) { this.id = id; } public Integer getSeq() { return seq; } public void setSeq(Integer seq) { this.seq = seq; } public String getImei() { return imei; } public void setImei(String imei) { this.imei = imei; } public String getLat() { return lat; } public void setLat(String lat) { this.lat = lat; } public String getLon() { return lon; } public void setLon(String lon) { this.lon = lon; } public String getEtype() { return etype; } public void setEtype(String etype) { this.etype = etype; } public String getNos() { return nos; } public void setNos(String nos) { this.nos = nos; } public String getRssi() { return rssi; } public void setRssi(String rssi) { this.rssi = rssi; } public String getHac() { return hac; } public void setHac(String hac) { this.hac = hac; } public String getSpd() { return spd; } public void setSpd(String spd) { this.spd = spd; } public String getBtv() { return btv; } public void setBtv(String btv) { this.btv = btv; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getDt() { return dt; } public void setDt(String dt) { this.dt = dt; } public String getErpm() { return erpm; } public void setErpm(String erpm) { this.erpm = erpm; } public String getThpos() { return thpos; } public void setThpos(String thpos) { this.thpos = thpos; } public String getErntm() { return erntm; } public void setErntm(String erntm) { this.erntm = erntm; } public String getFgrl() { return fgrl; } public void setFgrl(String fgrl) { this.fgrl = fgrl; } public String getDtml() { return dtml; } public void setDtml(String dtml) { this.dtml = dtml; } public String getFlvl() { return flvl; } public void setFlvl(String flvl) { this.flvl = flvl; } public String getFtype() { return ftype; } public void setFtype(String ftype) { this.ftype = ftype; } public String getEot() { return eot; } public void setEot(String eot) { this.eot = eot; } public String getEct() { return ect; } public void setEct(String ect) { this.ect = ect; } public String getOdm() { return odm; } public void setOdm(String odm) { this.odm = odm; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public Integer getV() { return v; } public void setV(Integer v) { this.v = v; }
Here is how I tried to fetch the data in form of a Datum list
using the Report
class.
Here is the activity code...
Call<Report> call = RetrofitClient
.getInstance()
.getApi()
.getAlltheReports(reportModel);
call.enqueue(new Callback<Report>() {
@Override
public void onResponse(Call<Report> call, Response<Report> response) {
Log.d("responseBodyyyyyyyyy", String.valueOf(response.body()));
Report example = response.body();
if (example != null) {
Log.d("gettingNull", "DATA");
List<Datum> data = response.body().getData();
Log.d("dataaaaaaaaaaaaaaaa", String.valueOf(data));
} else {
Log.d("gettingNull", "Null");
}
}
@Override
public void onFailure(Call<Report> call, Throwable t) {
Log.d("error", String.valueOf(t));
}
});
In, the retrofit call reportModel
is nothing but JSON data.
For reference,
ReportModel:
ReportModelJson reportModel = new ReportModelJson("353081090133664", "Asia/Kolkata", "02-06-2022", "02-10-2022");
And I'm posting the API call like this:-
@POST("getonlyselect")
Call<Report> getAlltheReports(
@Body ReportModelJson ReportModelJson
);
This is I tried to fetch the data, but instead of getting the proper response, I'm getting the packagename@xxxx
.
For reference:
com.example.abcd.Screens.Models.Datum@42df5e8
The response that I'm getting is like this:-
{
"success": true,
"data": [
{
"_id": "61fed1d527824e063e318124",
"seq": 21,
"imei": "353081090133664",
"lat": "22.472927",
"lon": "70.080795",
"etype": "stop",
"nos": "5",
"rssi": "-51",
"hac": "1.5",
"spd": "2",
"btv": "12.34",
"address": "abcd",
"dt": "1644089809000",
"erpm": "N",
"thpos": "N",
"erntm": "N",
"fgrl": "N",
"dtml": "N",
"flvl": "N",
"ftype": "N",
"eot": "N",
"ect": "N",
"odm": "N",
"date": "2022-02-05T19:36:53.087Z",
"__v": 0
}
]
}
Please help me to find out the solution.
CodePudding user response:
As I understand your code, there is not any error in the retrofit API call, There is an error in the printing value that you got from API.
As I can see in your code you have used the below code to print data that you got from API.
List<Datum> data = response.body().getData();
Log.d("dataaaaaaaaaaaaaaaa", String.valueOf(data));
Also, Data
is an array that you are trying to print using Log.d
. So if you want to print your data so you can set for loop to print every object data like below.
List<Datum> data = response.body().getData();
for(int l=0; l<data.size(); l )
{
Log.d("dataaaaaaaaaaaaaaaa", data.get(l)._id())
}
I hope, this will help you to solve your issue.