0

JSONデータを解析し、解析されたJSONデータをキー値とともにArrayList HashMapに保存しました。解析されたデータを表示したい場合、解析されたデータの最後の値のみを取得しています残りのすべてのデータは参照用に表示されません

public HashMap<String,String> map = new HashMap<String, String>();
create HASHmap then arraylist
public static ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();
void parsing(JSONObject json)
    {
        String id="";
        String countryn="";
        try
        {
            countryobj = json.getJSONArray("country_details");

     for(int i = 0;i<countryobj.length(); i++)
     {
         JSONObject items = countryobj.getJSONObject(i);

         Log.e("i","value==="+i);

         if(items.has("countryid"))
         {
             id = items.getString("countryid");
             map.put("countryid",id);
             Log.e("id","valueID==="+id);
         }
         if(items.has("country"))
         {
             countryn= items.getString("country");
             map.put("country",countryn);
             Log.e("counyrt","valueName==="+countryn);

         }
         contactList.add(i,map);
         Log.e("lisvaluet","val--"+i +contactList.get(i));


     }



    }
    catch (Exception e) {
        // TODO: handle exception

            e.printStackTrace();
    }

私が取得しているログではonly 08-20 12:13:45.830: E/--ID---(654): value--{countryid=275, country=Palestinian Territory} with 269 times、解析されたデータを保存する際に間違っている場所を見つけるのに役立ちます。ここで立ち往生しています。

4

1 に答える 1

0

これをチェックして。

private JSONObject[] items;

JSONArray countryobj = json.getJSONArray("country_details");
items = new JSONObject[countryobj.length()];

for(int i=0, i < countryobj.length(); i++)
{
    items[i] = countryobj.optJSONObject(i);
    id = items[i].getString("countryid");
    map.put("countryid",id);

    countryn= items[i].getString("country");
    map.put("country",countryn);

    contactList.add(i,map);
}

ここに画像の説明を入力してください

于 2012-08-20T12:29:46.283 に答える