【问题标题】:have issue in getting proper responce from for-loop从 for 循环获得正确响应时遇到问题
【发布时间】:2015-07-23 10:59:06
【问题描述】:

我正在使用 For 循环从 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循环。请让我知道我犯了什么错误 在这里做。

【问题讨论】:

  • 您的所有代码在哪里? arr 在哪里定义?不要到处使用try/catches,它会让你的代码难以阅读。
  • 你能发布你的 JSON 数据吗?

标签: android json for-loop response


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2023-04-04
    • 2019-02-02
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多