如何使用Java解析json(android)

时间:2016-10-24 19:33:31

标签: java android json

我有一个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代码

1 个答案:

答案 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");