JSONObject中的JSONObject

我有这样的API输出:

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

我用这个API创build一个简单的JSONObject

 JSONObject json = getJSONfromURL(URL); 

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

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

但是,如何获取stat1stat2的数据?

Solutions Collecting From Web of "JSONObject中的JSONObject"

JSONObject使用JSONObject.getJSONObject(String)JSONObject.getJSONArray(String)为许多不同的数据types提供访问器,包括嵌套的JSONObjectsJSONArrays

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

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

请注意这里缺lesserror handling:例如,代码假定存在嵌套成员 – 您应该检查null – 并且没有exception处理。

 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()方法获取string值。

要访问JSON中的属性,可以使用JSON.parseparsing对象,然后声明所需的属性,如:

 var star1 = user.stat1;