JSONObject 中的 JSONObject

新手上路,请多包涵

我有一个这样的 API 输出:

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

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

 JSONObject json = getJSONfromURL(URL);

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

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

但是如何获取 stat1stat2 的数据?

原文由 user1488243 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 486
2 个回答

JSONObject provides accessors for a number of different data types, including nested JSONObjects and 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 - 并且没有异常处理。

原文由 pb2q 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

原文由 Krunal Shah 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题