fetching json object from json string : hii need some urgent help.
 i am new to andorid and i am developing app which has server side functionality. i am getting response in json format

my response is shown as this image

i knw how to parse json using vally but i dont know hot to pasrse using GSOn.
previous code of my app was writen by some one else. now i have to complete this code. but i dnt knw how he getting data from json string

i need json arrays in different activty.

array response[image][1]

here is some snaps of my code

code for adapter for activty one

      topicListAdapter = new TopicListAdapter(TopicActivity.this,

                    myCourseListMain.  getCourseArrayList().get(Integer.parseInt(course_position)).
                    getTopicListMain().getTopicDetailsArrayList(), flag);


            listAlltopics.setAdapter(topicListAdapter);


in which i got list of topics

here is code for second activty list adpater

     lessionListAdapter = new LessionListAdapter(LessionActivity.this,
                    myCourseListMain.  getCourseArrayList().      get(Integer.parseInt(course_position)).
                    getTopicListMain().getTopicDetailsArrayList().get(Integer.parseInt(topic_position)).getLessionArrayList(), flag);

bye this code i got array of lession in second activity

now i want sublession array in 3 rd activty but i dont knw how to get it
here is what i tried

     lessionListAdapter = new DummyAdapter(DummyTopicList.this,
                    myCourseListMain     .  getCourseArrayList().         get(Integer.parseInt(course_position)).
                    getTopicListMain()   .  getTopicDetailsArrayList()   .get(Integer.parseInt(topic_position)).
                    getLessionLIstMain() .getLessionLIstDetailArrayList().get(Integer.parseInt(lession_position)). , flag);

            listAlllessions.setAdapter(lessionListAdapter);

here are some other classes which helpful to you for understand

    public class MyCourseListMain {

    @SerializedName("data")
    private ArrayList<Course> courseArrayList;

    public ArrayList<Course> getCourseArrayList() {
        return courseArrayList;
    }

    public void setCourseArrayList(ArrayList<Course> courseArrayList) {
        this.courseArrayList = courseArrayList;    
    }
    }


class for couse

    public class Course {


    @SerializedName("img")
    private String img;

    @SerializedName("title")
    private String title;

    @SerializedName("institute_id")
    private String institute_id;

    @SerializedName("institute_name")
    private String institute_name;

    @SerializedName("expired")
    private String expired;

    @SerializedName("status")
    private String status;

    @SerializedName("subscribe_box")
    private String subscribe_box;

    @SerializedName("expire_on")
    private String expire_on;

    @SerializedName("item_id")
    private String item_id;

    @SerializedName("rated")
    private String rated;

    private TopicListMain topicListMain;



    public String getRated() {
        return rated;
    }

    public void setRated(String rated) {
        this.rated = rated;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getInstitute_id() {
        return institute_id;
    }

    public void setInstitute_id(String institute_id) {
        this.institute_id = institute_id;
    }

    public String getInstitute_name() {
        return institute_name;
    }

    public void setInstitute_name(String institute_name) {
        this.institute_name = institute_name;
    }

    public String getExpired() {
        return expired;
    }

    public void setExpired(String expired) {
        this.expired = expired;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getSubscribe_box() {
        return subscribe_box;
    }

    public void setSubscribe_box(String subscribe_box) {
        this.subscribe_box = subscribe_box;
    }

    public String getExpire_on() {
        return expire_on;
    }

    public void setExpire_on(String expire_on) {
        this.expire_on = expire_on;
    }

    public String getItem_id() {
        return item_id;
    }

    public void setItem_id(String item_id) {
        this.item_id = item_id;
    }

    public TopicListMain getTopicListMain() {
        return topicListMain;
    }

    public void setTopicListMain(TopicListMain topicListMain) {
        this.topicListMain = topicListMain;   }  }



class for topiclist_main

    public class TopicListMain {


    @SerializedName("data")
    private ArrayList<TopicDetails> topicDetailsArrayList;

    public ArrayList<TopicDetails> getTopicDetailsArrayList() {
        return topicDetailsArrayList;
    }



    public void setTopicDetailsArrayList(ArrayList<TopicDetails> topicDetailsArrayList) {

        this.topicDetailsArrayList = topicDetailsArrayList;   }}



class for topic details
public class TopicDetails 
{


    @SerializedName("topic_id")
    private String topic_id;

    @SerializedName("title")
    private String title;

    @SerializedName("locked")
    private String locked;

    @SerializedName("lessons")
    private ArrayList<Lession> lessionArrayList;


    private LessionLIstMain lessionLIstMain;

    public LessionLIstMain getLessionLIstMain() {
        return lessionLIstMain;
    }

    public void setLessionLIstMain(LessionLIstMain lessionLIstMain) {
        this.lessionLIstMain = lessionLIstMain;
    }

    public String getTopic_id() {
        return topic_id;
    }

    public void setTopic_id(String topic_id) {
        this.topic_id = topic_id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getLocked() {
        return locked;
    }

    public void setLocked(String locked) {
        this.locked = locked;
    }

    public ArrayList<Lession> getLessionArrayList() {
        return lessionArrayList;
    }



    public void setLessionArrayList(ArrayList<Lession> lessionArrayList) {
        this.lessionArrayList = lessionArrayList;   }}


i hope oneone will answer it soon. thanks in advanced.


  [1]: https://drive.google.com/open?id=0B9qgugNyvGRiWmRDNDFBOEt1WFU