私はこのようなJSONデータを持っています。このタイプのデータを解析するには、それは複数のjsonArraysを持っていますか?アンドロイドに複数のjsonArraysを持つjsonデータを解析するには?
{
"result":
[{
"site_name":"comenius",
"ws_url":"https://comenius-api.sabacloud.com/v1/",
"base_url":"https://comenius.sabacloud.com/",
"logo_url":"",
"Title":"",
"menu_items":[
{"item":
[{"id":"home1","label":"Home" }]
},
{"item":
[{"id":"enrol1","label":"Enrollment" }]
},
{"item":
[{"id":"transcripts1","label":"Completed Courses"}]
},
{"item":
[{"id":"goals1","label":"Goals"}]
},
{"item":
[{"id":"rprojects1","label":"Reference Projects"}]
},
{"item":
[{"id":"iwh1","label":"Internal Work History"}]
},
{"item":
[{"id":"ewh1","label":"EXternal Work History"}]
}
]
},{.....}
]
}
iは、データを解析するためにいくつかのコードを書くが、それは仕事をdidntの、ラベルをデータを解析し、IDの値を取得する必要があります。
JSONObject subObj = new JSONObject(data2);
JSONObject innerObj1 = subObj.getJSONObject("result");
JSONObject subArrayObj = innerObj1.getJSONObject("menu_items");
for(int j =0;j < subArrayObj.length();j++) {
JSONObject innsersubObj = subArrayObj.getJSONObject("item");
String id = innsersubObj.getString("id");
String label = innsersubObj.getString("label");
Log.e("id",id);
Log.e("label",label);
}
コードを変更する必要があるデータを解析するにはどうすればよいですか?
この行にはエラーが表示されます –
JSONObject innsersubObj = subArrayObj.getJSONObject( "item"); –
はい、エラーが表示されます。配列のインデックスを使用する必要がありますので、 "item"をフェッチすることができます。 forループを使用してJSONOBJECT(i)メソッドを使用してください。 内部ループuは配列を返す "item"を持つことができます。 したがって、基本的に正しいクラスはRHSに返すものを見て使用してください。 – Ankit