面对Json解析用户配置文件源的问题

时间:2016-03-02 13:20:37

标签: android json parsing

  

我正在开发一个项目,我必须解析用户Feed数据   使用Json。

这是json的网址:

http://ourfield.affixwebsolution.com/api/feed?data={%22userId%22:210}
  

这是我解析json的代码

 public static ArrayList<FeedDataClass> parseFeedddata(String res)
    {
        ArrayList<FeedDataClass>arr =new ArrayList<FeedDataClass>();
        FeedDataClass obj=new FeedDataClass();
           JSONArray jsonArray ;
           JSONObject jsonInnerObj = null;
        try {
            JSONObject jsonObject =new JSONObject(res);

             jsonArray =jsonObject.getJSONArray("data");    
             Log.d("eaweaer", jsonArray.toString());
            for (int i = 0; i < jsonArray.length(); i++) {

                  jsonInnerObj=jsonArray.getJSONObject(i);

                  try {
                      obj.strid = jsonInnerObj.getString("id");
                } catch (Exception e) {
                    // TODO: handle exception
                }


                try {
                    JSONObject timeline = new JSONObject(jsonInnerObj.getJSONObject("timeline").toString());
                    obj.strusername=timeline.getString("username");
                    Log.d("efe", obj.strusername);
                    obj.strurl=timeline.getString("avatar_url");
                    Log.d("aeefwe", obj.strurl);


                } catch (Exception e) {
                    // TODO: handle exception
                }
                try {
                    obj.strtext=jsonInnerObj.getString("text");
                    Log.d("qeeqf", obj.strtext);

                } catch (Exception e) {
                    // TODO: handle exception
                }
                arr.add(obj);
            }


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

        return arr;
    }   
  

现在的问题是,json总共有三个帖子,但每次都有   我得到了最后一个饲料。它也在UI中打印3次   因为循环运行完美。不知道我的错误是什么   在这里做。

请帮我解决这个问题,提前谢谢。

1 个答案:

答案 0 :(得分:1)

您只有一个obj实例,它不断更新相同的内存位置。在最后的循环周期中,它会以第3个值更新并显示给您。但是,是的,你在列表中添加了3次,所以你有三次相同的对象。

移动

FeedDataClass obj=new FeedDataClass();
JSONObject jsonInnerObj = null;

for圈内。