Я анализирую API с помощью модернизации, но он дает ответ от onFailure. Я испробовал каждое возможное решение, которое исследовал, но результат все тот же.
Мой Api выглядит следующим образом:
{
"status": 200,
"data": [
{
"club_id": 1,
"club_name": "XYZ",
"member_info": {
"title": "ABC",
"image": "",
"position": "",
"description": null,
"email": "unknown @gmail.com",
"landline": "000000",
"mobile": "00000000",
"website": "unknown",
"address": "unknown",
"blood_group": "unknown blood_group"
}
} // edited ( "}" was missing)
]
}
Мой класс Model выглядит следующим образом:
public class SerialDTO{
@SerializedName("data")
private ArrayList<SerialData> data;
public ArrayList<SerialData> getData() {
return data;
}
public void setData(ArrayList<SerialData> data) {
this.data = data;
}
}
Затем я реализовал элемент данных следующим образом:
public class SerialData implements Parcelable {
@SerializedName("club_id")
String club_id;
@SerializedName("club_name")
String club_name;
@SerializedName("member_info")
private ArrayList<Serial> serial;
public String getClub_id() {
return club_id;
}
public void setClub_id(String club_id) {
this.club_id = club_id;
}
public String getClub_name() {
return club_name;
}
public void setClub_name(String club_name) {
this.club_name = club_name;
}
public ArrayList<Serial> getSerial() {
return serial;
}
public void setSerial(ArrayList<Serial> serial) {
this.serial = serial;
}
protected SerialData(Parcel in) {
club_id = in.readString();
club_name = in.readString();
serial = in.createTypedArrayList(Serial.CREATOR);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(club_id);
dest.writeString(club_name);
dest.writeTypedList(serial);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<SerialData> CREATOR = new Creator<SerialData>() {
@Override
public SerialData createFromParcel(Parcel in) {
return new SerialData(in);
}
@Override
public SerialData[] newArray(int size) {
return new SerialData[size];
}
};
}
Информация о моем члене DTO выглядит следующим образом:
public class Serial implements Parcelable {
@SerializedName("title")
String title;
@SerializedName("image")
String image;
@SerializedName("position")
String position;
@SerializedName("description")
String description;
@SerializedName("email")
String email;
@SerializedName("landline")
String landline;
@SerializedName("mobile")
String mobile;
@SerializedName("website")
String website;
@SerializedName("address")
String address;
@SerializedName("blood_group")
String bloodGroup;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLandline() {
return landline;
}
public void setLandline(String landline) {
this.landline = landline;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBloodGroup() {
return bloodGroup;
}
public void setBloodGroup(String bloodGroup) {
this.bloodGroup = bloodGroup;
}
protected Serial(Parcel in) {
title = in.readString();
image = in.readString();
position = in.readString();
description = in.readString();
email = in.readString();
landline = in.readString();
mobile = in.readString();
website = in.readString();
address = in.readString();
bloodGroup = in.readString();
}
public static final Creator<Serial> CREATOR = new Creator<Serial>() {
@Override
public Serial createFromParcel(Parcel in) {
return new Serial(in);
}
@Override
public Serial[] newArray(int size) {
return new Serial[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(title);
parcel.writeString(image);
parcel.writeString(position);
parcel.writeString(description);
parcel.writeString(email);
parcel.writeString(landline);
parcel.writeString(mobile);
parcel.writeString(website);
parcel.writeString(address);
parcel.writeString(bloodGroup);
}
}
Мой интерфейс API:
public interface MembersApi {
@GET("api/family_tree")
Call<SerialDTO> getMyJSON();
}
Я реализовал анализ API следующим образом:
private void fetchMember() {
MembersApi service = new RetrofitApiClient(getApplicationContext()).createService(MembersApi.class);
Call<SerialDTO> call = service.getMyJSON();
call.enqueue(new Callback<SerialDTO>() {
@Override
public void onResponse(Call<SerialDTO> call, Response<SerialDTO> response) {
if (response.isSuccessful()) {
SerialDTO RealResponse=new SerialDTO();
ArrayList<SerialData> data=new ArrayList<>();
RealResponse = response.body();
data = RealResponse.getData();
initGridView();
}
}
@Override
public void onFailure(Call<SerialDTO> call, Throwable t) {
Log.d("TAG", "Failure" + t);
}
});
}