我正在构建一个用于显示学校时间表的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"
}
尝试下面的代码,如果它可能会帮助你。这将返回2019-04-01数组内的jsonObject。
new JSONObject("YOUR RESPONSE STRING HERE").getJSONObject("lessons").getJSONArray("2019-04-01").getJSONObject(0)
JSONObject obj = new JSONObject(“StringFormat”); JSONArray jsonarray = obj.getJSONArray(“2019-04-01”);
我建议你使用GSON库让你的生活更轻松,以防JSON响应将来变得更加复杂。它为您执行JSON到普通Java对象的所有解析。
例:
Gson gson = new Gson();
JavaClass object = gson.fromJson(jsonObject.toString(), JavaClass.class);
N.B:我还建议你在那之后开始学习Retrofit网络库。在进行REST API调用时,它被认为是当今的标准。