java - 如何获取json数组中子数组的值

标签 java arrays json android-studio listview

My Result and Expected Result我如何获取 JSON 中子数组的数组值,即 A 数组的值 我想将结果填充到一个列表中,例如“Brimstone”,“Cross”,“Calvary”,这个问题实际上是我在完整代码可以在我的上一个问题中找到之前提出的问题的扩展How to get the value of a child node of a json array

我的 JSON 文件

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

我的Java代码

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

使用我的代码,我的列表中得到空白结果

最佳答案

尝试此代码

您正在为 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();
    }
}

关于java - 如何获取json数组中子数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59797284/

相关文章:

java - quarkus jaxrs 非阻塞误解

java - hibernate 抛出 StreamCorruptedException : invalid stream header

java - 使用 logback 预防日志伪造

javascript - 如何从 XML 中删除一些特定的标签

arrays - 如何通过哈希值之一从哈希数组中获取哈希引用?

arrays - 如何快速从数组中删除特定项目?

java - BufferedReader 创建奇数字符,我应该使用哪种字符编码?

java - 使用 Retrofit2 在 Recycleview 中得到空响应?

java - org.springframework.http.converter.HttpMessageNotReadableException 调用休息后调用时

c# - 如何在 C# 中将字典转换为 JSON 字符串?