How to make model class in java android for json in retrofit I have this json
I have make six model class in java in android. which are as follows
model 1 :- EventsResponseData.java
package com.galaktiknepal.eticketnepal.Models.NetworkingModels;
import com.google.gson.annotations.SerializedName;
public class EventsResponseData {
    @SerializedName("data")
    EventsData data;
    @SerializedName("status")
    boolean status;
    @SerializedName("categories")
    EventsCategories eventsCategories;
    public EventsData getData() {
        return data;
    }
    public void setData(EventsData data) {
        this.data = data;
    }
    public Boolean getStatus() {
        return status;
    }
    public void setStatus(Boolean status) {
        this.status = status;
    }
    public EventsCategories getEventsCategories() {
        return eventsCategories;
    }
    public void setEventsCategories(EventsCategories eventsCategories) {
        this.eventsCategories = eventsCategories;
    }
}
model 2 :-EventsData.java
package com.galaktiknepal.eticketnepal.Models.NetworkingModels;
import com.google.gson.annotations.SerializedName;
public class EventsData {
    @SerializedName("id")
    int id;
    @SerializedName("title")
    String title;
    @SerializedName("slug")
    String slug;
    @SerializedName("image")
    EventsImage image;
    @SerializedName("about")
    String about;
    @SerializedName("least_price")
    String least_price;
    @SerializedName("date_count")
    int date_count;
    @SerializedName("least_date")
    EventsLeastDate least_date;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getSlug() {
        return slug;
    }
    public void setSlug(String slug) {
        this.slug = slug;
    }
    public EventsImage getImage() {
        return image;
    }
    public void setImage(EventsImage image) {
        this.image = image;
    }
    public String getAbout() {
        return about;
    }
    public void setAbout(String about) {
        this.about = about;
    }
    public String getLeast_price() {
        return least_price;
    }
    public void setLeast_price(String least_price) {
        this.least_price = least_price;
    }
    public int getDate_count() {
        return date_count;
    }
    public void setDate_count(int date_count) {
        this.date_count = date_count;
    }
    public EventsLeastDate getLeast_date() {
        return least_date;
    }
    public void setLeast_date(EventsLeastDate least_date) {
        this.least_date = least_date;
    }
}
model 3 :- EventsImage.java
package com.galaktiknepal.eticketnepal.Models.NetworkingModels;
import com.google.gson.annotations.SerializedName;
public class EventsImage {
    @SerializedName("cropped")
        String cropped;
    public String getCropped() {
        return cropped;
    }
    public void setCropped(String cropped) {
        this.cropped = cropped;
    }
}
model 4:- EventsLeastDate.java
package com.galaktiknepal.eticketnepal.Models.NetworkingModels;
import com.google.gson.annotations.SerializedName;
public class EventsLeastDate {
    @SerializedName("human")
    String human;
    @SerializedName("iso")
    String iso;
    @SerializedName("formatted")
    String formatted;
    @SerializedName("formatted_trim")
    String formatted_trim;
    public String getHuman() {
        return human;
    }
    public void setHuman(String human) {
        this.human = human;
    }
    public String getIso() {
        return iso;
    }
    public void setIso(String iso) {
        this.iso = iso;
    }
    public String getFormatted() {
        return formatted;
    }
    public void setFormatted(String formatted) {
        this.formatted = formatted;
    }
    public String getFormatted_trim() {
        return formatted_trim;
    }
    public void setFormatted_trim(String formatted_trim) {
        this.formatted_trim = formatted_trim;
    }
}
model 5 :- EventsCategories.java
package com.galaktiknepal.eticketnepal.Models.NetworkingModels;
import com.google.gson.annotations.SerializedName;
public class EventsCategories {
    @SerializedName("id")
    int id;
    @SerializedName("sub_id")
    int sub_id;
    @SerializedName("name")
    String name;
    @SerializedName("icon")
    String icon;
    @SerializedName("slug")
    String slug;
    @SerializedName("seo")
    EventsSeo seo;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getSub_id() {
        return sub_id;
    }
    public void setSub_id(int sub_id) {
        this.sub_id = sub_id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getSlug() {
        return slug;
    }
    public void setSlug(String slug) {
        this.slug = slug;
    }
    public EventsSeo getSeo() {
        return seo;
    }
    public void setSeo(EventsSeo seo) {
        this.seo = seo;
    }
}
Model 6:- EventsSeo.java
package com.galaktiknepal.eticketnepal.Models.NetworkingModels;
import com.google.gson.annotations.SerializedName;
public class EventsSeo {
    @SerializedName("keywords")
    String keywords;
    @SerializedName("desc")
    String desc;
    public String getKeywords() {
        return keywords;
    }
    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
}
And this is my retrofit api
@POST("event/all")
Call<EventsResponseData> getEventsAllData();
And this is my Retrofit Call
private void GetAllEvents(){
    Gson gson = new GsonBuilder()
            .setLenient()
            .create();
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://api.eticketnepal.com/api/")
            .addConverterFactory(ScalarsConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
    JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
    Log.e("testing : ","begain");
    Call<EventsResponseData> call = jsonPlaceHolderApi.getEventsAllData();
    call.enqueue(new Callback<EventsResponseData>() {
        @Override
        public void onResponse(Call<EventsResponseData> call, Response<EventsResponseData> response) 
{
            if(response.isSuccessful()){
              //  currentEventsResponseData=response.body();
                Log.e("event success"," "+response.body().toString());
            }else{
               Log.e("Message","sorry!.......we are unable to fetch user info .......");
            }
        }
        @Override
        public void onFailure(Call<EventsResponseData> call, Throwable t) {
            Log.e("Failure msg"," "+t.getMessage()+" / "+t.getCause());
        }
    });
}
My code throws me this error E/Failure msg: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 10 path $.data
please help me to fix this problem

 
    