1

我需要解析一些 JSON 对象,它看起来像这样:

{"searchdata":{},"userdata":{"currency":"69","notificationCount":7}}

我使用以下代码来实现这一点:

JSONObject rootObj = new JSONObject(getResponse);
JSONObject jSearchData = rootObj.getJSONObject("searchdata");
JSONObject userData = jSearchData.getJSONObject("userdata");

String currency = userData.getString("currency");

我无法currency从上面的代码中打印对象。我不断收到异常:

Exception: org.json.JSONException: No value for userdata

我不知道我做错了什么。

任何形式的帮助将不胜感激。

4

2 回答 2

10
JSONObject rootObj = new JSONObject(getResponse);

userData在里面rootObj不在里面searchdata

对于空值,您应该使用:

isNull

if (!rootObj.isNull("userdata")) {
    JSONObject userData = rootObj.getJSONObject("userdata");
}
于 2013-04-24T08:27:56.363 回答
1

利用

JSONObject userData = rootObj.getJSONObject("userdata");

要得到currency

currency  = userData.getString("currency");

像这样使用...

检查对象为空..

根据@blackbelt的回答使用:if (!rootObj.isNull("userdata"))

于 2013-04-24T08:28:47.003 回答