2012-12-05 40 views
1

可以有一個人請給我的JSON解析一個JSON數組解析JSON陣列從一個字符串

line = "contexts": [ 
    { 
     "uuid": "6686feaa-a254-42ec-a662-c36f70f7a586", 
     "name": "School", 
    }, 
    { 
     "uuid": "bd8e6c44-d461-4bbe-8946-a3717dc7fa7f", 
     "name": "Teaching", 
    }] 

我需要UUID和名字進入到字符串數組。我試過

String[] x = new String[10]; 
String[] y = new String[10]; 
JSONArray jArray = new JSONArray(line); 
for(int i=0;i<jArray.length();i++){   
    JSONObject json_data = jArray.getJSONObject(i); 
    x = json_data.getString("name"); 
y = json_data.getString("uuid");    
     } 

我運行這個時出現類型不匹配錯誤。行的類型是我從服務器返回的字符串。

回答

4

使用i添加元素數組的:

String[] x = new String[10]; 
String[] y = new String[10]; 
JSONObject json=new JSONObject(line); 
JSONArray jArray =json.getJSONArray("contexts"); 

for(int i=0;i<jArray.length();i++){   
    JSONObject json_data = jArray.getJSONObject(i); 
    x[i] = json_data.getString("name"); 
    y[i] = json_data.getString("uuid");    
     } 

您可以使用http://jsonviewer.stack.hu/進行檢查json是否有效或無噸。並使用ArrayList而不是Array從網絡服務動態獲取項目

+0

感謝哥們。它工作 – ChanChow

+0

@ user1494754:最歡迎的朋友!!! :)。因爲我建議你不要使用字符串數組從Web服務獲取數據。你可以像ArrayList,List,HashMap一樣使用任何Collection。 –

3

它既不的JSONObject,也不JSONArray,從服務器返回的字符串象下面這樣:

line = {"contexts": [ 
    { 
     "uuid": "6686feaa-a254-42ec-a662-c36f70f7a586", 
     "name": "School", 
    }, 
    { 
     "uuid": "bd8e6c44-d461-4bbe-8946-a3717dc7fa7f", 
     "name": "Teaching", 
    }]} 

,然後解析像下面的代碼:

JSONObject json=new JSONObject(line); 
JSONArray jArray =json.getJSONArray("contexts"); 
+0

現在,這是完美的,每個Json必須以對象'{'或數組''開始。 –