I am totally new to handling JSON and searched a lot but could not manage to understand the parsing related to my json file.
{
    "Category":[
        {"Category_id":1,"Category_name":"Apple","Emails":["abc.nic.in"],"Epabx":[ "2740581", "2740583" ], "Category_Fax" : ["2740557"],
        "Persons":[
            {"Person_ID":1,"Name":"Adam","Designation":"Teacher","Office_Phone":"2740654",
              "Residence_Phone":"2740643","VOIP":"11001","Address":"London","Fax":["NA"],"Ext":"NA"},
            {"Person_ID":2,"Name":"Maria","Designation":"Secy","Office_Phone":"2790654",
              "Residence_Phone":"2792866","VOIP":"NA","Address":"620/7","Fax":["NA"],"Ext":"NA"}, 
            {"Person_ID":3,"Name":"John","Designation":"Secretary","Office_Phone":"2790652",
              "Residence_Phone":"2563411","VOIP":"11011","Address":"5/7","Fax":["NA"],"Ext":"NA"}
              ]},
        {"Category_id":2,"Category_name":"Mango","Emails":["abc.in","abc@gmail.com","abc.nic.in"],"Epabx":["2741523","2743524","2741525","2741528"], "Category_Fax" : ["NA"],
        "Persons":[
            {"Person_ID":1,"Name":"Harry","Designation":"Teacher","Office_Phone":"2740030",
              "Residence_Phone":"2740534","VOIP":"10401","Address":"4/3","Fax":["2747075","2747395"],"Ext":"101"},
            {"Person_ID":2,"Name":"Ray ","Designation":"Secy","Office_Phone":"2740030",
              "Residence_Phone":"2770988","VOIP":"NA","Address":"233/22","Fax":["NA"],"Ext":"NA"}, 
            {"Person_ID":3,"Name":"Sandy","Designation":"Engineer ","Office_Phone":"2741662",
              "Residence_Phone":"2723280 ","VOIP":"10412 ","Address":"280/16","Fax":["2741663"],"Ext":"103 "}
              ]}
              ]
}
Following is my POJO class:
CategoryModel.java
package com.example.android.directory;
import java.util.ArrayList;
/**
 * Created by Android on 3/17/2017.
 */
public class CategoryModel {
    private ArrayList<CategoryList>categoryList;
    public  static class CategoryList{
        private int Category_id;
        private String Category_name;
        private ArrayList<String>Emails;
        private ArrayList<String>Epabx;
        private ArrayList<String>Category_Fax;
        private ArrayList<Persons> persons;
        public CategoryList(int category_id, String category_name,
                            ArrayList<String> emails, ArrayList<String> epabx, ArrayList<String> category_Fax,
                            ArrayList<Persons> persons) {
            Category_id = category_id;
            Category_name = category_name;
            Emails = emails;
            Epabx = epabx;
            Category_Fax = category_Fax;
            this.persons = persons;
        }
        public int getCategory_id() {
            return Category_id;
        }
        public void setCategory_id(int category_id) {
            Category_id = category_id;
        }
        public String getCategory_name() {
            return Category_name;
        }
        public void setCategory_name(String category_name) {
            Category_name = category_name;
        }
        public ArrayList<String> getEmails() {
            return Emails;
        }
        public void setEmails(ArrayList<String> emails) {
            Emails = emails;
        }
        public ArrayList<String> getEpabx() {
            return Epabx;
        }
        public void setEpabx(ArrayList<String> epabx) {
            Epabx = epabx;
        }
        public ArrayList<String> getCategory_Fax() {
            return Category_Fax;
        }
        public void setCategory_Fax(ArrayList<String> category_Fax) {
            Category_Fax = category_Fax;
        }
        public ArrayList<Persons> getPersons() {
            return persons;
        }
        public void setPersons(ArrayList<Persons> persons) {
            this.persons = persons;
        }
    }
    public static class Persons{
        private int Person_ID;
        private String Name;
        private String Designation;
        private String Office_Phone;
        private String Residence_Phone;
        private String VOIP;
        private String Address;
        private ArrayList<String>Fax;
        private String Ext;
        public Persons(int person_ID, String name, String designation, String office_Phone,
                       String residence_Phone, String VOIP, String address, ArrayList<String> fax, String ext) {
            Person_ID = person_ID;
            Name = name;
            Designation = designation;
            Office_Phone = office_Phone;
            Residence_Phone = residence_Phone;
            this.VOIP = VOIP;
            Address = address;
            Fax = fax;
            Ext = ext;
        }
        public int getPerson_ID() {
            return Person_ID;
        }
        public void setPerson_ID(int person_ID) {
            Person_ID = person_ID;
        }
        public String getName() {
            return Name;
        }
        public void setName(String name) {
            Name = name;
        }
        public String getDesignation() {
            return Designation;
        }
        public void setDesignation(String designation) {
            Designation = designation;
        }
        public String getOffice_Phone() {
            return Office_Phone;
        }
        public void setOffice_Phone(String office_Phone) {
            Office_Phone = office_Phone;
        }
        public String getResidence_Phone() {
            return Residence_Phone;
        }
        public void setResidence_Phone(String residence_Phone) {
            Residence_Phone = residence_Phone;
        }
        public String getVOIP() {
            return VOIP;
        }
        public void setVOIP(String VOIP) {
            this.VOIP = VOIP;
        }
        public String getAddress() {
            return Address;
        }
        public void setAddress(String address) {
            Address = address;
        }
        public ArrayList<String> getFax() {
            return Fax;
        }
        public void setFax(ArrayList<String> fax) {
            Fax = fax;
        }
        public String getExt() {
            return Ext;
        }
        public void setExt(String ext) {
            Ext = ext;
        }
    }
}
Please help me! How can i write the code for this???? I have a cardview activity (for ref you can see this link "http://www.truiton.com/2015/03/android-cardview-example/") in which i need to get data from json file in " private ArrayList getDataSet() " method. Please Help!!
 
     
     
    