2012-12-02 59 views
0

我希望有人能夠幫助我。我試圖解析以下JSON文件:用Java解析json數據

{ 
"seminar":[{ 
    "categoryid": "1", 
    "cpe": "13", 
    "inventory": [ 
     "Discussion", 
     "Value x", 
     "Value y" 
    ], 
    "teachers": [{ 
     "titel": "Dipl.-Ing.", 
     "company": "XY", 
     "name": "Test", 
     "id": "3" 
    }] 
}] 
}  

我在...

private static final String TAG_TEACHERS = "teachers"; 
private static final String TAG_TITLE = "title"; 

for(int i = 0; i < seminar.length(); i++){ 
JSONObject c = seminar.getJSONObject(i); 

teachers = c.getJSONArray(TAG_TEACHERS); 
for(int z = 0; z < teachers.length(); z++){     
JSONObject d = teachers.getJSONObject(z); 
String title = d.getString(TAG_TITLE); 
Log.d("JSONParsingActivity", title); 

解析教師數據丟失我的錯誤System.err的(1010):org.json。 JSONException:在類型爲org.json.JSONObject $ 1的教師處的值爲null無法轉換爲JSONArray。

我做錯了什麼?據我所知,從JSON文檔中,教師是一個JSON數組而不是一個對象。有人能幫助我嗎?

+0

你在做什麼? :)讓我們以正確的格式編輯問題!你總是做錯了 –

+0

我是新來的,我不明白指示的權利,所以我現在盡我所能。 – user1854707

+0

在c.getJSONArray(TAG_DOZENTEN)處應該有TAG_teachers作爲參數,而不是TAG_DOZENTEN。如果它的錯字好心糾正它。 –

回答

1

似乎你使用錯誤的標籤。 teachers = c.getJSONArray(TAG_DOZENTEN);

難道不是TAG_teachers而不是TAG_DOZENTEN?

+0

Dozenten是老師的德語單詞;) – jlordo

+0

我指的是私有靜態最終字符串TAG_teachers =「teachers」; – arjoan

+0

+1,很好找!混合語言與我的閱讀能力混淆在這裏。 – jlordo

0

可以解析給出JSON字符串爲:

JSONObject jObject = new JSONObject("YOUR_JSON_STRING"); 

JSONArray jArrseminar = jObj.getJSONArray("seminar"); 
for(int i = 0; i < jArrseminar.length(); i++){ 
    JSONObject jobject = jArrseminar.getJSONObject(i); 

    String strcategoryid=jobject.getString("categoryid"); 
    String strcpe=jobject.getString("cpe"); 

    JSONArray jArrinventory = jobject.getJSONArray("inventory"); 
    for(int j = 0; j < jArrinventory.length(); j++){ 

     // access all inventory value here 
    } 


    JSONArray jArrteachers = jobject.getJSONArray("teachers"); 
    for(int j = 0; j < jArrteachers.length(); j++){ 
     JSONObject jobjectteachers = jArrteachers.getJSONObject(i); 

     // access all teachers value here 
    String strtitel=jobjectteachers.getString("titel"); 
    String strcompany=jobjectteachers.getString("company"); 
    String strname=jobjectteachers.getString("name"); 
    String strid=jobjectteachers.getString("id"); 
    } 
} 
+0

謝謝,但是這會引發同樣的錯誤:在類型爲org.json.JSONObject $ 1的教師處的值null無法轉換爲JSONArray。 – user1854707

+0

@ user1854707:對於JSON,這是200%的正確解析,如果您發佈修改後的代碼,那麼這將更有助於您快速解決您的問題,謝謝 –

+0

@ user1854707:請參閱我的編輯答案完全解析教師數組 –