Как заполнить счетчик подпунктов JSON? - PullRequest
0 голосов
/ 30 января 2020

Я уверен, что об этом спрашивают много, и я нашел здесь несколько похожих вопросов, но ни один из них не помог мне решить мою проблему. Я надеюсь, что кто-то может мне помочь.

Что я хочу сделать, это предоставить пользователю выпадающий список (счетчик) со списком городов. И в списке городов есть подсписок. Список и подсписок от JSON.

Пользователи могут только выбирать подсписок.

Это мой JSON:

{
    "data":{
        "City":[
            {
                "city_id":112,
                "name":"Jakarta",
                "school":[
                    {
                        "school_id":1,
                        "parent":112,
                        "school":"Junior 1"
                    },
                    {
                        "school_id":2,
                        "parent":112,
                        "school":"Junior 2"
                    }
                ]
            },
            {
                "city_id":113,
                "name":"Jakarta",
                "school":[
                    {
                        "school_id":3,
                        "parent":113,
                        "school":"High 1"
                    }
                ]
            }
        ]
    } 
}

это мой код синтаксического анализа:

for (int i=0; i<city.length();i++){
                            JSONObject listcity = city.getJSONObject(i);


                            JSONArray school = listcity.getJSONArray("school");
                            for (int j=0; j<school.length(); j++){
                                JSONObject listschool = school.getJSONObject(j);


                                VolleyLog.e("List Desa =======>"+listschool);
                            }

                        }

ожидаемый результат:

Джакарта

  • Младший 1
  • Младший 2

Токио

  • Высокий 1

До сих пор я анализировал данные JSON, я был бы признателен, если бы кто-нибудь мог показать решение описанной проблемы или предоставить любую ссылку, полезную для решения проблемы. проблема.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 января 2020

вы можете создавать выражения и использовать библиотеку GSON для ее анализа jsonObject

// first class is Data
public class data {

private DataBean data;

public DataBean getData() {
    return data;
}

public void setData(DataBean data) {
    this.data = data;
}
}


 /// second class DataBean
public class DataBean {
    private List<CityBean> City;

    public List<CityBean> getCity() {
        return City;
    }

    public void setCity(List<CityBean> City) {
        this.City = City;
    }
  }

 // third class is CityBean 

  public class CityBean {

        private int city_id;
        private String name;
        private List<SchoolBean> school;

        public int getCity_id() {
            return city_id;
        }

        public void setCity_id(int city_id) {
            this.city_id = city_id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public List<SchoolBean> getSchool() {
            return school;
        }

        public void setSchool(List<SchoolBean> school) {
            this.school = school;
        }
      }

    // forth class is SchoolBean

    public  class SchoolBean {

            private int school_id;
            private int parent;
            private String school;

            public int getSchool_id() {
                return school_id;
            }

            public void setSchool_id(int school_id) {
                this.school_id = school_id;
            }

            public int getParent() {
                return parent;
            }

            public void setParent(int parent) {
                this.parent = parent;
            }

            public String getSchool() {
                return school;
            }

            public void setSchool(String school) {
                this.school = school;
            }
        }

использовать эту библиотеку библиотека Gson

и записать эту строку для анализа Gson

new Gson().fromJson(/*your response String*/, DataBean.class)
0 голосов
/ 30 января 2020

попробуйте с этим, вы можете получить название города и школы по этому.

     try {
        JSONObject objects=new JSONObject(object1);
        JSONObject data=objects.optJSONObject("data");
        JSONArray array=data.optJSONArray("City");
        for(int j=0; j<array.length(); j++)
        {
            String mainSchool=array.optJSONObject(j).optString("name");
            Log.e("mainSchool",mainSchool);
            JSONArray subList=array.optJSONObject(j).optJSONArray("school");

            for(int k=0; k<subList.length(); k++) {
                String subItems=subList.optJSONObject(k).optString("school");
                Log.e("subSchool",subItems);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

вывод

 E/mainSchool: Jakarta
 E/subSchool:  Junior 1
               Junior 2
 E/mainSchool: Jakarta
 E/subSchool:  High 1
...