2015-01-12 87 views
0

我有一個iOS應用程序和一個與RESTFul webservice一起工作的Android應用程序。在Android應用程序中拋出JSONException

當我對服務進行查詢時,我得到一個像這樣返回的JSON對象。

[ 
    { 
     "id": 21, 
     "device_id": "xxxxxxxxxxx", 
     "api_key": "yyyyyyyyyy", 
     "customer_id": 28, 
     "created_at": "2014-12-08T11:21:01.517Z", 
     "updated_at": "2014-12-13T04:40:44.295Z", 
     "registered_at": "2014-12-08T11:22:49.960Z", 
     "install_date": "2014-11-18", 
     "serial_number": "1121113", 
     "last_communication_at": "2014-12-13T04:40:44.283Z", 
     "avg": null, 
     "min": null, 
     "max": null, 
     "usage_updated_at": null, 
     "usage_period_days": null, 
     "settings_change_upload_interval": 5, 
     "stats_upload_interval": 1440 
    } 
] 

iOS沒有問題檢索和解析JSON信息。

在Android上,我試圖用的JSONObject序列化,我得到(順便說一句,我是從URL請求獲得的200有效的狀態代碼)

JSONObject myObject = new JSONObject(result); 

響應但這拋出異常說JSONObject格式不正確。

我有其他調用工作正常的API,所以這是關於這個特定的JSONObject導致的問題。是否因爲其中的一些值返回爲null,因爲它們尚未設置在數據庫中?

就像我說的,這個包的iOS JSON序列化工作得很好。

+0

其一個JSONArray,據我可以看到.. –

+2

'[]'代表陣列(即使它只有一個元件),'{}'是對象。使用'JSONArray'。 – Pshemo

+1

這不是一個JSON對象 - >關閉作爲錯字 – njzk2

回答

7

你正試圖解析一個數組到對象,這就是爲什麼它給予例外。另外,別忘了在其周圍放置一個try-catch塊。

使用此

try 
{ 
    JSONArray myArr = new JSONArray(result); 
    JSONObject myObj = myArr.getJSONObject(0); 
    int id = myObj.getInt("id"); 
} 
catch (JSONException e) 
{ 
    e.printStackTrace(); 
} 
+0

謝謝。我會給你一個鏡頭。我確實有抓住那裏。 – K2Digital

+0

試試吧,它會完成這項工作! :) – Rohit5k2

+0

當我今晚回到家時,我會給它一個鏡頭。非常感謝。 – K2Digital

相關問題