从for循环获得适当的响应有问题

时间:2015-07-23 10:59:07

标签: android json for-loop response

  

我使用For-loop从Json获取数据。这是我的代码:

try {
        JSONObject jsonObj=new JSONObject(strri);
        Privacy_Setting_Ozone_Feed  obj=new Privacy_Setting_Ozone_Feed();
        jsonArray=jsonObj.getJSONArray("Setting");
        JSONArray jsonArray4=jsonObj.getJSONArray("blocklist");
        Log.d("ads", jsonArray4.toString());



        for(int i=0;i<jsonArray.length();i++)

        {
            JSONObject jsonInnerObj=jsonArray.getJSONObject(i);


            try
            {
            obj.strvalue=jsonInnerObj.getString("value");
            }catch(Exception e)
            {

            }

            try
            {
                obj.str_name=jsonInnerObj.getString("name");

            }catch(Exception e)
            {

            }
        }
        for (int j=0; j<jsonArray4.length(); j++)//----------(loop)
        {
            JSONObject jObject = jsonArray4.getJSONObject(j);

            try
            {
                obj.str_image=jObject.getString("image");

                Log.d("sadsa", obj.str_image);
            }catch(Exception e)
            {

            }
            try
            {
                obj.str_blockname=jObject.getString("name");

                Log.d("test", obj.str_blockname);
            }catch(Exception e)
            {

            }

            arr.add(obj); //-------------------(1)
        }



        } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    return arr;//--------------(2)

}   
  

在这个地方arr.add(obj);我正在考虑json的确切值,   就像有三个不同的值,所以我得到适当的三个   价值......但在返回点,我只得到最后一个价值   来自json循环。请让我知道我的错误   我在这里做。

1 个答案:

答案 0 :(得分:0)

您只初始化obj个对象一次,因为您正在修改的只有一个引用导致所有条目中具有相同的值。尝试在for循环中调用构造函数。它会解决你的问题。