2015-06-10 82 views
-2

部分我有一個像下面拆分列表視圖進入使用如下JSON響應

{ 
     "continent":"Africa", 
     "name":"Djezzy", 
     "cid":"3", 
     "country":"Algeria", 
     "filename":"djezzy.png", 
     "iso2":"DZ", 
     "iso3":"DZA", 
     "network":"OTA NET, ALG 02, 603 02" 
    }, 
    { 
     "continent":"Africa", 
     "name":"Etisalat Nigeria", 
     "cid":"156", 
     "country":"Nigeria", 
     "filename":"etisalat.png", 
     "iso2":"NG", 
     "iso3":"NGA", 
     "network":"Etisalat" 
    }, 
    { }, 
    { 
     "continent":"Americas", 
     "name":"Tigo", 
     "cid":"47", 
     "country":"Colombia", 
     "filename":"tigo.png", 
     "iso2":"CO", 
     "iso3":"COL", 
     "network":"Tigo" 
    }, 
    { 
     "continent":"Europe", 
     "name":"Beeline-Armenia", 
     "cid":"11", 
     "country":"Armenia", 
     "filename":"beeline.png", 
     "iso2":"AM", 
     "iso3":"ARM", 
     "network":"Beeline, ArmenTel, ARMGSM, ARM 01, 283 01" 
    }, 
    { 
     "continent":"Europe", 
     "name":"life", 
     "cid":"220", 
     "country":"Ukraine", 
     "filename":"life.png", 
     "iso2":"UA", 
     "iso3":"UKR", 
     "network":"UA Astelit, UKR 06, 255 06" 
    }, 
    { 
     "continent":"Europe", 
     "name":"T-Mobile", 
     "cid":"240", 
     "country":"Montenegro", 
     "filename":"tmobile.png", 
     "iso2":"ME", 
     "iso3":"MNE", 
     "network":"T-Mobile CG, YU 04, 220 04, 297 02, MNE 02" 
    }, 
    { 
     "continent":"Europe", 
     "name":"Turkcell", 
     "cid":"215", 
     "country":"Turkey", 
     "filename":"turkcell.png", 
     "iso2":"TR", 
     "iso3":"TUR", 
     "network":"Turkcell" 
    }, 
    { 
     "continent":"Middle East & Asia", 
     "name":"3hk", 
     "cid":"96", 
     "country":"Hong Kong", 
     "filename":"3hk.png", 
     "iso2":"HK", 
     "iso3":"HKG", 
     "network":"3, 3G, Orange, 3-Dualband" 
    } 

現在我要顯示一個國家的列表,將列表分爲大陸明智段要求的JSON響應。我可以使用Expandable列表視圖,但是如何將這個json分成多個數組列表,然後我可以在可擴展列表視圖中將其用作組和子組。

爲了更好undertanding我需要顯示這樣的數據... https://drive.google.com/a/panzertechnologies.net/file/d/0B7Jo72tgHOJUVjVLS0cwVWhaUzQ/view?usp=sharing

在此先感謝。

+0

您是否嘗試使用Google搜索JSON解析庫? – Codebender

+1

只需檢查你的json。我正在檢查它到任何在線json驗證器或格式化程序,並且它不正確 – Pankaj

+0

您有json對象,現在您可以製作一個getter setter並將其添加到arraylist。使用它你可以將數組數據顯示到列表視圖中。 – Shvet

回答

0

嘗試這樣的,它可以幫助你

initilaize字符串數組

String[] CENTERNAME,CENTER_ID; 

越來越JSON數組

//Converting string to Array list 
        ArrayList<String> centername_arr= new ArrayList<String>(); 
        ArrayList<String> Center_Id_arr= new ArrayList<String>(); 


if ((response.toString()).contains("{")) 
      { 
       // JSONArray jr = new JSONArray(response); 
       SoapObject rep = (SoapObject) envelope.bodyIn; 
       JSONArray jr = new JSONArray(rep.getPropertyAsString(0)); 
       for (int i = 0; i < jr.length(); i++) 
       { 
        JSONObject jb = (JSONObject) jr.get(i); 


         Center_id = jb.getString("CenterId"); 
         CenterName = jb.getString("CenterName"); 


          centername_arr.add(CenterName); 
          Center_Id_arr.add(Center_id); 

}} 

//Convert Arraylist to String Array 
CENTERNAME = new String[centername_arr.size()]; 
CENTERNAME = centername_arr.toArray(CENTERNAME); 

CENTER_ID= new String[Center_Id_arr.size()]; 
CENTER_ID = Center_Id_arr.toArray(CENTER_ID); 

那麼你可以使用字符串數組之前初始化數組列表您Listview

+0

非常感謝馬諾抽出時間來幫助我。我得到的解決方案... :) – Aziz

+0

如果我的答案可以幫助你,只需接受答案:-) – Mano

+0

我正要upvote你,但不幸的是它需要15名聲望upvote,我只有6 ...我再次想要感謝你@Mano ... :) – Aziz

0

謝謝大家花一些時間閱讀我的q uestion ..我找到了答案,下面是解決方案。

JSONObject j=jo.getJSONObject("response"); 
    JSONArray jar=j.getJSONArray("data"); 
    for (int i = 0; i < jar.length(); i++) { 

    JSONObject job=jar.getJSONObject(i); 
    String continent=job.getString("continent"); 
    String name=job.getString("name"); 
    String country=job.getString("country"); 
     // tmp hashmap for single contact 
       HashMap<String, String> contact = new HashMap<String, String>(); 
       boolean exists = false; 
    for (HashMap<String, String> hashMap : contactList) { 
     try { 
     if (hashMap.get("continent").equals(continent)) { 
     exists = true; 
     break; 
     } 
     } catch (Exception e) { 
     } 
    } 
    if (!exists) { 
     contact.put("continent", continent); 
    } 

       contact.put("name", name); 
       contact.put("country", country); 

       contactList.add(contact); 

    }