java解析复杂的JSON结果
我有一个json(结果),如下所示,我需要键“extra”的值,即“contact office”。 我尝试了下面的代码,但没有成功,你能帮我吗
JSONArray jsonArray = new JSONArray(result.toString().trim());
JSONObject json = jsonArray.getJSONObject(0).getJSONObject("student").getJSONArray("department").getJSONObject(0).getJSONObject("classes");
String val=json.getString("extra");
//JSON示例
{
"student": [
{
"department" : [
{
"classes" : [
{
"grade" : "A",
"fine" : "No"
},
{
"grade" : "B",
"fine" : "Yes",
"extra" : "contact office"
},
{
"grade" : "C",
"fine" : "NA"
}
],
}
],
}
],
}
# 1 楼答案
这是完整的样品吗?如果是这样的话,它不会以数组的形式开始。Student是对象,而不是数组。如果它只是数组中一个项目的样本,那么您就可以了
我注意到的第二件事是:
getJSONObject("classes")
。类是数组而不是对象,这不起作用# 2 楼答案
你把
JSONArray
和JSONObject
搞混了好几次,不确定我到底要改变什么,但下面的方法可以奏效:# 3 楼答案
你想考虑使用JsonPath吗?你可以这样做-