2016-03-02 74 views
0

我正在开发一个项目,在该项目中,我必须使用Json解析用户供稿数据 。Json解析用户配置文件Feed时面临的问题

这里是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中总共有三个帖子,但每次都是 我正在获取最后一个feed。它也在UI 中打印3次,因为循环运行完美。不知道我在这里做了什么错误 。

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

回答

1

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

移动

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

for循环。

+0

但是,它在log cat中给出了完美的结果。但是当我将arj添加到arr并尝试在UI中显示该值时,它将返回相同的值三次。但在解析时,Log.d打印所有三个值... :( – nitin

+0

它工作:)谢谢你 – nitin