Android 如何访问命名对象内的JSON数组?

Android 如何访问命名对象内的JSON数组?,android,json,parsing,Android,Json,Parsing,我正在构建一个用于显示学校时间表的Android应用程序,JSON数据来自URL。但是,JSON的格式化方式使所需的数组位于命名的“lessons”对象中。如何才能访问我需要的阵列 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",

我正在构建一个用于显示学校时间表的Android应用程序,JSON数据来自URL。但是,JSON的格式化方式使所需的数组位于命名的“lessons”对象中。如何才能访问我需要的阵列

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


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

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

JSONObject obj=新的JSONObject(“StringFormat”); JSONArray JSONArray=对象getJSONArray(“2019-04-01”)

我建议您使用该库,以便在将来JSON响应变得更复杂时让您的工作更轻松。它为您将JSON解析为普通Java对象

  • 首先在渐变中添加此依赖项: 实现'com.google.code.gson:gson:2.8.5'

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

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

例如:

Gson gson = new Gson();
JavaClass object = gson.fromJson(jsonObject.toString(), JavaClass.class);
  • 然后,只需从该java对象轻松访问您想要的任何内容,而不是手动解析您接收的JSON对象
注:我还建议你们在那个之后开始学习改造网络图书馆。现在,在进行REST API调用时,它被视为一种标准。

可能重复此播放列表。请查看此播放列表,并在询问一些问题之前进行一些研究。