我需要在id
数组中获取student
的值。我得到的回应是,
{
"response": {
"student": [
{
"id": "125745",
"module": 3,
"status": 1
}
]
}
}
我尝试使用以下代码,
String userId = null;
try {
JSONObject object = (JSONObject) new JSONTokener(response).nextValue();
userId= object.getString("id");
} catch (JSONException e) {
e.printStackTrace();
}
但它不起作用。如何检索id
?
答案 0 :(得分:1)
你几乎就在那里,只需要这样做:
JSONArray students = object.getJSONArray("student");
JSONObject student = students.getJSONObject(0);
userId= student.getString("id");
因为id值放在JSONObject中,所以在索引0的JSONArray中,它再次放在JSONObject中。
另外,不要忘记处理异常,上面的代码仅供您理解。
希望有所帮助!!
答案 1 :(得分:0)
您的值放在json数组中。因此,您需要使用response
检索getJSONObject
对象,然后通过student
获取getJSONArray
json数组。然后,您将能够遍历student
个对象。没有办法神奇地从json获取id。
或者,您可以使用Gson将json映射到Java对象。
答案 2 :(得分:0)
试试这个:
让所有的json都被称为
String serverResponse = "Response from the server";
try {
JSONObject object = new JSONObject(serverResponse);
String userId = object.getJSONObject("response").getJSONArray("student").getJSONObject(0).getString("id");
}
catch (JSONException e) {
e.printStackTrace();
}
希望这有帮助。
答案 3 :(得分:0)
假设jsonObject是对你的根json的引用,你可以得到第一个学生的id:
JSONObject response = (JSONObject) jsonObject.get("response");
JSONArray students = (JSONArray) response.get("student");
int id = (int) ((JSONObject)students.get(0)).get("id");