2016-02-05 280 views
0

你好,我有JSON這樣的:獲得價值

{ 
    "status": { 
     "code": 200, 
     "name": "NAME", 
     "description": "Login success." 
    }, 
    "message": "Login success.", 
    "data": { 
     "att_ticket": "TICKET_0625172f00ae7737bbab3c558c877b046e6b23ba", 
     "ktk_session_id": "735efe0e9af14eee3aa5839cbc609e66" 
    } 
} 

我能夠讀取狀態的名字,但是當我嘗試讀取data屬性att_ticket我得到

JSONObject("data") not found. 

我使用的代碼是:

String attTicket=object.getJSONObject("data").getString("att_ticket"); 

謝謝!

+1

這不是有效的JSON – Amit

+1

1)發表的真正JSON 你試圖解碼可以是地圖<字符串,對象>其中數據將是一個地圖對象<字符串,對象> 地圖<字符串, Object> json = mapper.XX(source); String attVal = json.get(「data」)。get(「att_ticket」); 應該給你的JSON。我提到了mapper.XX因爲我不確定你的JSON的來源是什麼。將XX替換爲readValue或convertValue – JVXR

+0

您使用哪個庫來獲取值? – Tinwor

回答

0

爲了得到att_ticket這應該工作:

JSONObject obj = new JSONObject(clientstring); 
JSONArray params = obj.getJsonArray("data"); 
JSONObject param1 = params.getJsonObject(); 
String ticket = param1.getString("att_ticket") 
-1

你會想要在http://jsonlint.com/這樣的地方驗證你的json。

{ 
    "status": { 
     "code": 200, 
     "name": "NAME", 
     "description": "Login success." 
    }, 
    "message": "Login success.", 
    "data": { 
     "att_ticket": "TICKET_06232432432432432432dsffdse6b23ba", 
     "ktk_session_id": "735efe0e9af14eee3aa5839cbc609e66" 
    } 
} 

在這一點上,你不應該有任何問題訪問你想要的值。

0

非常感謝您的所有答案的傢伙。從服務返回的錯誤是沒有獲取數據對象的原因。