how to get the values of a child array in json array

Serenity :

My Result and Expected ResultHow can i get the values of array of a child array in JSON that is the value of the A arrays I want to populate the result to a list such as "Brimstone", "Cross", "Calvary", This question is actually an extension of a question i have ask before the full code can be found in my previous question here How to get the value of a child node of a json array

My JSON File

{
  "schools": [
    {
      "A": [
        {
          "name": "Brimstone"
        },
        {
          "name": "Cross"
        },
        {
          "name": "Calvary"
        }
      ]
    }
  ]
}

My Java Code

    private void parseResult_GetWebData(String result) {
        try {
            JSONObject response = new JSONObject(result);
            JSONArray jsonArray = response.getJSONArray("schools");
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.optJSONObject(i);
                JSONArray jsonArray1 = jsonObject.getJSONArray("A");

                for (int k = 0; k < jsonArray1.length(); k++) {
                    JSONObject jsonObject1 = jsonArray1.optJSONObject(k);
                    String name = jsonObject1.optString("name");

                    List<SchoolClass> schoolClassList;
                    schoolClassList = new ArrayList<>();

                    SchoolClass schoolClass = new SchoolClass();
                    schoolClass.setName(name);
                    schoolClassList.add(schoolClass);
                }

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

With my code i am getting blank result in my list

Harshil Kakadiya :

Try this code

You are creating custom object array list on every object of A

private void parseResult_GetWebData(String result) {
    try {
        JSONObject response = new JSONObject(result);
        JSONArray jsonArray = response.getJSONArray("schools");
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.optJSONObject(i);
            JSONArray jsonArray1 = jsonObject.getJSONArray("A");

            List<SchoolClass> schoolClassList = new ArrayList<>();

            for (int k = 0; k < jsonArray1.length(); k++) {
                JSONObject jsonObject1 = jsonArray1.optJSONObject(k);
                String name = jsonObject1.optString("name");

                SchoolClass schoolClass = new SchoolClass();
                schoolClass.setName(name);
                schoolClassList.add(schoolClass);
            }

        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=357865&siteId=1