這看起來很簡單,但我無法繞過這個異常。我正在使用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,所以我無法輕易地自己測試這個理論。
謝謝!
噢,夥計...這是令人尷尬的。哈哈!我一直在盯着那個愚蠢的東西20分鐘,想知道WTF!?謝謝。 :) – 2014-12-02 16:32:30