【问题标题】:How to access JSON array inside named object?如何访问命名对象内的 JSON 数组?
【发布时间】:2019-04-17 09:08:37
【问题描述】:

我正在构建一个用于显示学校时间表的 Android 应用,JSON 数据来自一个 URL。然而,JSON 的格式设置为所需的数组位于命名的“课程”对象中。如何访问我需要的数组?

This is how my JSON looks

{
    "week": "2019-04-01",
    "times": {
        "1": "07:00-08:29",
        "2": "08:30-10:00",
        "3": "10:15-11:45",
        "4": "11:55-14:00",
        "5": "14:10-15:40",
        "6": "15:45-17:15",
        "7": "17:20-18:50",
        "8": "18:55-20:25",
        "9": "20:35-22:05",
        "lunch": "12:40-13:15"
    },
    "lessons": {
        "2019-04-01": [{
                "lesson": "2",
                "start": "08:30",
                "end": "10:00",
                "subject": "PHP",
                "group": "IS117",
                "teacher": "Jane Doe",
                "room": "A-222"
            }
        ]
    },
    "last update": "2019-03-28 17:02:02"
}

【问题讨论】:

标签: android json parsing


【解决方案1】:

如果对你有帮助,试试下面的代码。这将在 2019-04-01 数组中返回 jsonObject。

new JSONObject("YOUR RESPONSE STRING HERE").getJSONObject("lessons").getJSONArray("2019-04-01").getJSONObject(0)

【讨论】:

    【解决方案2】:

    JSONObject obj = new JSONObject("StringFormat"); JSONArray jsonarray = obj.getJSONArray("2019-04-01");

    【讨论】:

      【解决方案3】:

      我建议您使用 GSON 库来让您的生活更轻松,以防 JSON 响应在未来变得更加复杂。它会为您将所有 JSON 解析为普通的 Java 对象。

      • 首先在你的 gradle 中添加这个依赖: 实施 'com.google.code.gson:gson:2.8.5'

      • 然后创建一个代表预期 JSON 结构的 java 类/es。您可以使用此website 为您自动生成 java 类。您只需复制/粘贴 JSON,它就会生成 JAVA 代码以使用构造函数和 getter/setter 构造您的类。

      • 然后,您可以将收到的 JSON 对象自动转换为 Java 类。

      例子:

      Gson gson = new Gson();
      JavaClass object = gson.fromJson(jsonObject.toString(), JavaClass.class);
      
      • 然后只需从该 java 对象轻松访问您想要的任何内容,而不是手动解析您收到的 JSON 对象。

      N.B:我还建议你在那之后开始学习 Retrofit 网络库。在进行 REST API 调用时,它被认为是当今的标准。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-28
        • 2018-08-28
        • 2021-11-20
        • 2011-07-07
        相关资源
        最近更新 更多