2017-10-05 33 views
0

我的職責是我怎麼能收集陣列的英雄在我的Android Studio項目下面

public String[] loadIntoListView(String json) throws JSONException { 
    JSONArray jsonArray = new JSONArray(json); 
    String[] heroes = new String[3]; 
    for (int i = 0; i < 3; i++) 
    { 
     JSONObject obj = jsonArray.getJSONObject(i); 
     // heroes[i] = obj.getString("name"); 
     heroes[i]= "https://static.pexels.com/photos/1543/landscape-nature-man-person-medium.jpg"; 
    } 
    return heroes; 
} 

這就是我把它叫做但它返回空數組我

String s=""; 
try { 
    items= loadIntoListView(s); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
+0

分享您的JSON響應 – sumit

+0

你JSON是無效 –

回答

0

JSONArray jsonArray = new JSONArray(json);可能由於json不是有效的json數組而崩潰。這會導致數組爲空,因爲它尚未初始化。

+0

現在請大家幫我初始化或者我應該給你我的全部代碼。因爲我想要一個方法,將檢索和圖像名稱從我的數據庫(PHP/MySQL),並返回一個字符串數組持有這些圖像名稱 –

+0

@SagirYusufMuhammad你必須糾正你的JSON字符串的錯誤。如果您需要幫助,請更新您的問題以包含您嘗試解析的字符串。如果您還要發佈堆棧跟蹤,這可能會有所幫助。 – meeeee

+0

String s = null; //字符串,我正在通過 嘗試{item = loadIntoListView(s); (JSONException e){ } } –

0

你的異常處理程序不適用。如果您在正文中捕獲異常,則可以解析已驗證的json項目。如果項目不正確,您可以通過。

例如,

public String[] loadIntoListView(String json) { 
    JSONArray jsonArray = new JSONArray(json); 
    ArrayList<String> heroes = new ArrayList(); 
    for (int i = 0; i < jsonArray.length; i++) 
    { 
     try{ 

      JSONObject obj = jsonArray.getJSONObject(i); 
      heroes.add(obj.getString("name")); 

     }catch(JSONException ignore_errors){ 

     } 
    } 
    return heroes.toArray(new String[0]);; 
} 
+0

非常感謝,我這樣做,但顯示我:預期字符串[],但找到Arraylist。請我想要英雄是字符串數組和方法loadIntoListView是返回英雄陣列。謝謝 –

+0

@SagirYusufMuhammad我編輯答案。 –

+0

感謝這麼多的搜索,似乎我接近,但它仍然顯示我在JSON錯誤。我的意思是這一行JSONArray jsonArray = new JSONArray(json); –