2011-12-06 63 views
1

我正在面對JSONException,同時從字符串創建JSONArray。我使用JSON Validator從Webservice驗證了響應字符串。創建JSONArray時創建Java JSONException

這裏是代碼:

json = new JSONObject(); 
content = recieveData(json.toString(), m_sTimeTableUrl + sPGId); 
if (content != null){ 
    Log.d(TAG, "got content:"+content); 
    try { 
    JSONArray jArray2 = new JSONArray(content);  //THE EXCEPTION FIRES HERE! 
    Log.i(TAG, "Number of entries " + jArray2.length()); 
    Happening pHappening = null; 
    ArrayList<Happening> pResult = new ArrayList<Happening>(); 
    for(int i = 0; i < jArray2.length(); i++){ 
     pHappening = new Happening(); 
     JSONObject jObject = jArray2.getJSONObject(i); 
     pHappening.setEndtime(new Time(jObject.getInt("EndMinute"))); 
     pHappening.setDocent(jObject.getString("Lecturer")); 
     pHappening.setRoom(jObject.getString("Room")); 
     pHappening.setStartTime(new Time(jObject.getInt("StartMinute"))); 
     pHappening.setName(jObject.getString("Title")); 
     pHappening.setDayOfWeek(jObject.getInt("Weekday")); 
     pResult.add(pHappening); 
    } 
      //java.util.Arrays.sort(pResult); 
    return pResult; 
    }catch (JSONException e) { 
    Log.e(TAG, e.toString()); 
    } 

,這是我的內容串看起來像:

{ "Happenings" : [ { "EndMinute" : 570, 
     "Lecturer" : "Prof. Dr. Christian Schrödter", 
     "OrgLecturId" : 10181, 
     "Room" : "KC112", 
     "StartMinute" : 480, 
     "Title" : "Physik 1 (310321) ", 
     "Weekday" : 0 
     }, 
     { "EndMinute" : 675, 
     "Lecturer" : "Prof. Dr.-Ing. Norbert Wellerdick", 
     "OrgLecturId" : 1750, 
     "Room" : "KD010", 
     "StartMinute" : 585, 
     "Title" : "TM 1 (310341) ", 
     "Weekday" : 0 
     }, 
     { "EndMinute" : 780, 
     "Lecturer" : "Prof. Dr. Christian Schrödter", 
     "OrgLecturId" : 10181, 
     "Room" : "KC112", 
     "StartMinute" : 690, 
     "Title" : "Physik 1 (310321) ", 
     "Weekday" : 0 
     }, 
     { "EndMinute" : 930, 
     "Lecturer" : "Prof. Dr. Christian Schrödter; Dipl.-Ing. (FH) Bernd Bleyel", 
     "OrgLecturId" : 1742, 
     "Room" : "KA303", 
     "StartMinute" : 840, 
     "Title" : "Info 1 (310351) ", 
     "Weekday" : 0 
     }, 
     { "EndMinute" : 570, 
     "Lecturer" : "Prof. Dr.-Ing. Hermann Lanfer", 
     "OrgLecturId" : 1753, 
     "Room" : "KC133", 
     "StartMinute" : 480, 
     "Title" : "ET 1 (310331) ", 
     "Weekday" : 1 
     }, 
     { "EndMinute" : 675, 
     "Lecturer" : "Prof. Dr. Christian Schrödter; Dipl.-Ing. (FH) Bernd Bleyel", 
     "OrgLecturId" : 1742, 
     "Room" : "KA303", 
     "StartMinute" : 585, 
     "Title" : "Info 1 (310351) ", 
     "Weekday" : 1 
     }, 
     { "EndMinute" : 780, 
     "Lecturer" : "Prof. Dr.-Ing. Axel Schenk", 
     "OrgLecturId" : 1812, 
     "Room" : "KD010", 
     "StartMinute" : 690, 
     "Title" : "Mathe 1 (310311) ", 
     "Weekday" : 1 
     }, 
     { "EndMinute" : 570, 
     "Lecturer" : "Prof. Dr. Christian Schrödter", 
     "OrgLecturId" : 8357, 
     "Room" : "KC112", 
     "StartMinute" : 480, 
     "Title" : "Info 1 (310351) ", 
     "Weekday" : 2 
     }, 
     { "EndMinute" : 675, 
     "Lecturer" : "Prof. Dr.-Ing. Hermann Lanfer", 
     "OrgLecturId" : 1753, 
     "Room" : "KC112", 
     "StartMinute" : 585, 
     "Title" : "ET 1 (310331) ", 
     "Weekday" : 2 
     }, 
     { "EndMinute" : 780, 
     "Lecturer" : "Prof. Dr.-Ing. Robert Paspa", 
     "OrgLecturId" : 1764, 
     "Room" : "KC112", 
     "StartMinute" : 690, 
     "Title" : "Konstruk.1 (310381) ", 
     "Weekday" : 2 
     }, 
     { "EndMinute" : 930, 
     "Lecturer" : "Prof. Dr.-Ing. Axel Schenk", 
     "OrgLecturId" : 1812, 
     "Room" : "KC112", 
     "StartMinute" : 840, 
     "Title" : "Mathe 1 (310311) ", 
     "Weekday" : 2 
     }, 
     { "EndMinute" : 570, 
     "Lecturer" : "Birgitta Götzelmann-Liebig", 
     "OrgLecturId" : 8324, 
     "Room" : "KC113", 
     "StartMinute" : 480, 
     "Title" : "TechEngl1 (310391) ", 
     "Weekday" : 3 
     }, 
     { "EndMinute" : 675, 
     "Lecturer" : "Birgitta Götzelmann-Liebig", 
     "OrgLecturId" : 8324, 
     "Room" : "KC113", 
     "StartMinute" : 585, 
     "Title" : "TechEngl1 (310391) ", 
     "Weekday" : 3 
     }, 
     { "EndMinute" : 780, 
     "Lecturer" : "Prof. Dr.-Ing. Hermann Lanfer", 
     "OrgLecturId" : 1753, 
     "Room" : "KD010", 
     "StartMinute" : 690, 
     "Title" : "ET 1 (310331) ", 
     "Weekday" : 3 
     }, 
     { "EndMinute" : 930, 
     "Lecturer" : "Prof. Dr.-Ing. Axel Schenk", 
     "OrgLecturId" : 1812, 
     "Room" : "KD010", 
     "StartMinute" : 840, 
     "Title" : "Mathe 1 (310311) ", 
     "Weekday" : 3 
     } 
    ] } 

期待一些幫助!

謝謝!

+0

什麼是例外?!全堆跟蹤請! –

+0

你的JSON是一個對象,而不是一個數組。這可能是一個拋出異常 – andyb

+0

這裏是從logcat(它是一個Android應用程序)的完整堆棧跟蹤。 –

回答

1
JSONArray jArray2 = new JSONArray(content); 

正嘗試使用JSONObject來初始化JSONArray。您需要使用

JSONObject obj = new JSONObject(content); 

因爲您的content是JSON對象。

但是,關鍵字「Happenings」的值是一個JSONArray,因此您可以使用它來初始化JSONArray。

+0

非常感謝,先生,這幫了我很多! –