簡體   English   中英

如何在Android Studio中解析具有多個對象和數組的資產json文件?

[英]How can i parse assets json file having multiple objects and arrays in android studio?

我對處理JSON完全陌生,並進行了大量搜索,但無法理解與json文件相關的解析。

{
    "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 "}
              ]}
              ]
}

以下是我的POJO課:

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;
        }
    }
}

請幫我! 我如何為此編寫代碼???? 我有一個cardview活動 (供參考,您可以看到此鏈接“ http://www.truiton.com/2015/03/android-cardview-example/ ”),其中我需要從“ private ArrayList ”中的json文件中獲取數據getDataSet()方法。 請幫忙!!

試試這個代碼。

try {

            ArrayList<CategoryList>categoryList = new ArrayList<CategoryList>();
            JSONObject jsonObject = new JSONObject("yourResopnseVariable");

            JSONArray categoryArray = jsonObject.getJSONArray("Category");

            for (int i = 0; i < categoryArray.length(); i++)
            {
                JSONObject job = categoryArray.getJSONObject(i);

                int categoryId = job.getInt("Category_id");
                String categoryName = job.getString("Category_name");

                //this is for email array
                ArrayList<String> emails = new ArrayList<>();
                JSONArray emailArray = job.getJSONArray("Emails");
                for (int j = 0; i < emailArray.length(); j++){
                    JSONObject jobE = emailArray.getJSONObject(j);
                    emails.add(jobE.getString(""+j));
                }

                //This i for Epabx array
                ArrayList<String> epabx = new ArrayList<>();
                JSONArray epabxArray = job.getJSONArray("Epabx");
                for (int j = 0; i < epabxArray.length(); j++){
                    JSONObject jobE = epabxArray.getJSONObject(j);
                    epabx.add(jobE.getString(""+j));
                }

                //This i for Category_Fax array
                ArrayList<String> category_Fax = new ArrayList<>();
                JSONArray category_FaxJson = job.getJSONArray("Category_Fax");
                for (int j = 0; i < category_FaxJson.length(); j++){
                    JSONObject jobE = category_FaxJson.getJSONObject(j);
                    category_Fax.add(jobE.getString(""+j));
                }

                //This i for Persons array
                ArrayList<Persons> personsList = new ArrayList<>();
                JSONArray personsArray = job.getJSONArray("Persons");
                for (int j = 0; i < personsArray.length(); j++){
                    JSONObject jobIn = personsArray.getJSONObject(j);

                    int Person_ID = jobIn.getInt("Person_ID");
                    String Name = jobIn.getString("Name");
                    String Designation = jobIn.getString("Designation");
                    String Office_Phone = jobIn.getString("Office_Phone");
                    String Residence_Phone = jobIn.getString("Residence_Phone");
                    String VOIP = jobIn.getString("VOIP");
                    String Address = jobIn.getString("Address");

                    //this is for Fax array
                    ArrayList<String>Fax = new ArrayList<>();
                    JSONArray fax = jobIn.getJSONArray("Fax");
                    for (int k=0; k < fax.length(); k++)
                    {
                        JSONObject jobI = fax.getJSONObject(k);
                        Fax.add(jobI.getString(""+k));
                    }
                    String Ext = jobIn.getString("Ext");

                    personsList.add(new Persons(Person_ID, Name, Designation, Office_Phone, Residence_Phone,
                            VOIP, Address, Fax, Ext));
                }

                //here your Category[] value store in categoryArrayList
                categoryList.add(new CategoryList(categoryId, categoryName, emailArray, epabx, category_Fax, personsList));
            }

            if (categoryList != null)
            {
                Log.i("categoryList size = ", ""+categoryArray.length());
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

有關更多詳細信息,請 檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM