2013-10-14 199 views
-1

我有一些JSON結構如下:解析JSON陣列與JSON對象

{"cit": [ 
    "ALL", 
    "Aceh Barat", 
    "Aceh Besar", 
    "Aceh Jaya", 
    "Aceh Selatan", 
    "Aceh Tengah", 
    "Aceh Timur", 
    "Aceh Utara"]} 

我必須嘗試解析的json是這樣的:

JSONObject jsonObject = new JSONObject(result); 
JSONArray city=jsonObject.getJSONArray("cit"); 

for (int j=0; j < city.length(); j++){ 
    JSONObject cit = city.getJSONObject(j); 
    String kot = cit.toString(j); 

    kota.add(kot); 
} 

上後執行:

ArrayAdapter<String> SpinnerKota = new ArrayAdapter<String>(Pencarian.this, android.R.layout.simple_list_item_1, kota); 
spin_kota.setAdapter(SpinnerKota); 

但沒有什麼事情發生,我的代碼有什麼問題嗎?我希望有人能幫助我解決我的問題。

+0

如何你什麼都不知道?你是否得到某種堆棧?你沒有得到預期的產出? (你發佈的片段並不表示你是否會以某種方式得到輸出。) – Makoto

+1

在我的微調器中使用此字符串kot = city.get(j)' – Raghunandan

+0

它將顯示爲:[ 「ALL 」 ‘亞齊巴拉’, ‘亞齊’, ‘亞齊查亞’, ‘亞齊SELATAN’, ‘亞齊登加’, ‘亞齊帖木兒’, ‘亞齊烏達拉’]我覺得這是不真 –

回答

2
"cit": [ // json array cit 
"ALL", // index 0 is ALL 

也有是JSON數組CIT內部沒有JSON對象。所以你不需要這個JSONObject cit = city.getJSONObject(j)

變化

String kot = cit.toString(j); 

String kot = (String) city.get(j); 

使用下面

 JSONObject jsonObject = new JSONObject("myjson string"); 
     JSONArray city=jsonObject.getJSONArray("cit"); 
     for(int i=0;i<city.length();i++) 
     { 
      String cities = (String) city.get(i); 
      Log.i("All Cities",cities); 
      kota.add(cities); 
     } 
0
Object obj = yourJsonResult; 
JSONObject jsonObject = (JSONObject) obj; 
JSONArray msg = (JSONArray) jsonObject.get("cit"); 
Iterator<String> iterator = msg.iterator(); 

while (iterator.hasNext()) { 
    System.out.println(iterator.next()); 
} 
0

你可以做如下的代碼,這是測試

String jsonSource="{'cit': ['ALL','Aceh Barat','Aceh Besar','Aceh Jaya','Aceh Selatan','Aceh Tengah','Aceh Timur','Aceh Utara']}"; 
    try { 
     JSONObject jsonObject=new JSONObject(jsonSource); 
     JSONArray jsonArray=jsonObject.getJSONArray("cit");   
     int length = jsonArray.length(); 
     String [] cities = new String [length]; 
     if (length > 0) { 
      for (int i = 0; i < length; i++) { 
       cities[i] = jsonArray.getString(i); 
      } 
     } 
     //to check we can print our string array 
     for (int i = 0; i < cities.length; i++) { 
      Log.d("JSON parsing ",cities[i]);    
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

單純的代碼不是答案。請向OP解釋他的代碼有什麼問題。 –

1

做這樣的

JSONArray json = jParser.getJSONFromUrl(URL); 

JSONObject c = json.getJSONObject(0); 

JSONArray city = c.getJSONArray("cit");  

for (int j=0; j < city.length(); j++){ 

    String kot = cit.get(j); 

    kota.add(kot); 
} 
+0

單純的代碼不是答案。請向OP解釋他的代碼有什麼問題。 –