JSONObject中的JSONObject

时间:2012-08-02 15:40:25

标签: java android json

我有这样的API输出:

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

我使用以下命令从此API创建一个简单的JSONObject

JSONObject json = getJSONfromURL(URL);

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

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

但是如何获取stat1stat2的数据?

3 个答案:

答案 0 :(得分:22)

JSONObject使用JSONObject.getJSONObject(String)JSONObject.getJSONArray(String)为多种不同的数据类型提供访问权限,包括嵌套的JSONObjectsJSONArrays

鉴于你的JSON,你需要做这样的事情:

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

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

答案 1 :(得分: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");

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

答案 2 :(得分:1)

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

var star1 = user.stat1;