我有一个JSON字符串,我需要使用Java(android)
从中提取字符串JSON字符串如下所示:
{
"Header": {
"context": {
"change": {
"token": 3191
},
"_jsns": "urn:zimbra"
}
},
"Body": {
"AuthResponse": {
"authToken": [
{
"_content": "token"
}
],
"lifetime": 43199998,
"_jsns": "urn:zimbraAdmin"
}
},
"_jsns": "urn:zimbraSoap"
}
我想得到_content
的值,这是“令牌”就是这种情况。
我尝试了什么:
注意:result
包含json字符串
//result contains the json string
JSONObject jObject = new JSONObject(result);
String aJsonString = jObject.getString("Body");
JSONObject jResult = new JSONObject(aJsonString);
String aaa = jResult.getString("authToken");
此时我收到以下错误:
W/System.err: org.json.JSONException: No value for authToken
任何帮助将不胜感激
编辑:更新了Java代码
答案 0 :(得分:1)
您需要逐步遍历JSON树
JSONObject jObject = new JSONObject(result);
JSONObject jBody = jObject.getJSONObject("Body");
JSONObject jAuthResponse = jBody.getJSONObject("AuthResponse");
JSONArray jauthToken = jAuthResponse.getJSONArray("authToken");
JSONObject jFirst = jauthToken.getJSONObject(0);
String aJsonString = jObject.getString("_content");