12

我有一个这样的 API 输出:

{"user" : {"status" : {"stat1" : "54", "stats2" : "87"}}}

JSONObject我从这个 API创建了一个简单的:

JSONObject json = getJSONfromURL(URL);

在此之后,我可以像这样读取用户的数据:

String user = json.getString("user");

但是如何获取stat1and的数据stat2

4

3 回答 3

27

JSONObject为许多不同的数据类型提供访问器,包括嵌套的JSONObjectsand JSONArrays、 using JSONObject.getJSONObject(String)JSONObject.getJSONArray(String).

鉴于您的 JSON,您需要执行以下操作:

JSONObject json = getJSONfromURL(URL);
JSONObject user = json.getJSONObject("user");
JSONObject status = user.getJSONObject("status");
int stat1 = status.getInt("stat1");

请注意这里缺少错误处理:例如,代码假定存在嵌套成员 - 您应该检查null- 并且没有异常处理。

于 2012-08-02T15:43:20.600 回答
2
JSONObject mJsonObject = new JSONObject(response);
JSONObject userJObject = mJsonObject.getJSONObject("user");
JSONObject statusJObject = userJObject.getJSONObject("status");
String stat1 = statusJObject.getInt("stat1");
String stats2 = statusJObject.getInt("stats2");

来自您的响应用户状态是对象,因此使用getJSONObjectstat1stats2状态对象键,因此使用getInt()方法获取整数值并使用getString()方法获取字符串值。

于 2013-02-07T06:29:08.640 回答
1

要访问 JSON 中的属性,您可以使用 JSON.parse 解析对象,然后访问所需的属性,例如:

var star1 = user.stat1;
于 2012-08-02T15:44:09.527 回答