Java 解析复杂的JSON结果
我有一个json(结果),如下所示,我需要键“extra”的值,即“contact office”。 我尝试了下面的代码,但没有成功,你能帮我吗Java 解析复杂的JSON结果,java,json,Java,Json,我有一个json(结果),如下所示,我需要键“extra”的值,即“contact office”。 我尝试了下面的代码,但没有成功,你能帮我吗 JSONArray jsonArray = new JSONArray(result.toString().trim()); JSONObject json = jsonArray.getJSONObject(0).getJSONObject("student").getJSONArray("department").getJSONObject(0).
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"
}
],
}
],
}
],
}您将
JSONArray
和JSONObject
混淆了好几次,不确定我到底要更改什么,但以下操作会起作用:
JSONObject jsonObject = new JSONObject(result.toString().trim());
JSONArray jsonArray = jsonObject
.getJSONArray("student").getJSONObject(0).getJSONArray("department").getJSONObject(0)
.getJSONArray("classes");
String val = jsonArray.getJSONObject(1).getString("extra");
这是完整的样品吗?如果是这样的话,它不会以数组的形式开始。Student是对象,而不是数组。如果它只是数组中一个项目的样本,那么您就可以了
我注意到的第二件事是:
getJSONObject(“类”)
。类是一个数组而不是对象,这将不起作用。 是否要考虑使用。你可以这样做-
String[] extraValues = JsonPath.read(json, "$.student[0].department[0].classes[*].extra");
请将您的代码放在代码块中,并告诉我们什么不起作用。@Oleg,问题中已经有了代码段。什么意思是它不起作用?任何错误消息或代码有什么问题?