2014-12-02 48 views
-1

這看起來很簡單,但我無法繞過這個異常。我正在使用Eclipse ADT並開發基本的Android項目。下面是我解析JSON:Java:簡單的JSON數組拋出「org.json.JSONException:沒有值...」

{ 
    "activated": 1, 
    "message": [ 
     { 
      "type": "dialog", 
      "name": "testdialog01", 
      "list": [ 
       "Truck 001", 
       "Truck 002", 
       "Truck 003", 
       "Truck 004", 
       "Truck 006" 
      ], 
      "heading": "Which truck are you currently driving?", 
      "id": 17 
     } 
    ] 
} 

這裏是我與解析它的代碼:

JSONObject jsonRes = new JSONObject(response); 
JSONArray msgs = jsonRes.getJSONArray("message"); 

for (int i=0; i<msgs.length(); i++) 
{ 
    JSONObject jsonObj = msgs.getJSONObject(i); 

    String type = jsonObj.getString("type"); 
    String diaName = jsonObj.getString("name"); 
    String diaHeading = jsonObj.getString("heading"); 

    JSONArray diaList = jsonRes.getJSONArray("list"); //exception thrown 
} 

的「名單」的JSON的部分是一個有效的JSONArray。調試器確認這一點。當我點擊上面的getJSONArray行時,我得到一個「沒有值的列表」JSONException。是什麼賦予了?頂級的「消息」數組是相似的,只有它的值被包裹在大括號中,而「list」只是一個字符串數組。我在jsonlint.com測試了這個JSON並且它是有效的,但是可能僅僅與標準的org.json API不一致?我不控制傳入的JSON,所以我無法輕易地自己測試這個理論。

謝謝!

回答

2

你有錯字:嘗試改變jsonRes.getJSONArray("list");jsonObj.getJSONArray("list");

+0

噢,夥計...這是令人尷尬的。哈哈!我一直在盯着那個愚蠢的東西20分鐘,想知道WTF!?謝謝。 :) – 2014-12-02 16:32:30

2

你行:

JSONArray diaList = jsonRes.getJSONArray("list"); //exception thrown 

應該是:

JSONArray diaList = jsonObj.getJSONArray("list"); //all good! 
相關問題