2016-03-02 72 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