2016-02-26 48 views
0

,我有以下格式的JSONObject通過的JSONObject循環創建數組的Java

[{"ascii_name":"Rio de Janeiro"},{"ascii_name":"Riyadh"},{"ascii_name":"Rome"},{"ascii_name":"Rawalpindi"},{"ascii_name":"Rabat"},{"ascii_name":"Recife"},{"ascii_name":"Ra's Bayrut"},{"ascii_name":"Rajkot"}] 

已經使用下面的代碼創建:

while($row = $all_cities->fetch_array()) 
{ 
$myArray["ascii_name"] = $row["ascii_name"]; 
$returnArray[] = $myArray; 
} 
echo json_encode($returnArray); 

現在我使用的是Volley任務加載到我的Android應用程序。在onResponse方法中,我想獲取每個城市名稱並使用for循環將其加載到ArrayList<String>中。這是我現在的代碼,但它不起作用,因爲sJSONObject而不是JSONArray

@Override 
     public void onResponse(String s) { 
      try { 
        JSONObject jsonObject = new JSONObject(s); 
       for (int i = 0; i < jsonObject.length(); i++) { 
        JSONObject a = jsonObject.getJSONObject(i); 
        ....... more code which isn't relevant 
       } 
+0

你的服務器正在返回'JSONArray'而不是'JSONObject',所以不需要轉換它。 – ELITE

回答

2

而不是

JSONObject jsonObject = new JSONObject(s); 

使用

JSONArray jsonArray = new JSONArray(s); 

而且我覺得你是在使用凌空StringRequest。在Volley中切換到JSONObjectRequest。

0

但要確保你做,你有正確的JSON響應。你可以通過使用Log.d打印你的json來解析它。