使用下面给出的json响应将列表视图拆分为多个部分

时间:2015-06-10 09:22:55

标签: java android json

我有一个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划分为多个数组列表,然后我可以将其用作可扩展列表视图中的组和子项。

为了更好地处理,我需要显示这样的数据...... https://drive.google.com/a/panzertechnologies.net/file/d/0B7Jo72tgHOJUVjVLS0cwVWhaUzQ/view?usp=sharing

提前致谢。

2 个答案:

答案 0 :(得分:0)

尝试这样,它可以帮助你

初始化字符串数组

String[] CENTERNAME,CENTER_ID;

在获取json数组之前初始化arraylist

//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中使用字符串数组

答案 1 :(得分:0)

感谢所有人花了一些时间阅读我的问题。我找到了答案,以下是解决方案。

   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);

    }