我正在开发一个项目,我必须解析用户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次 因为循环运行完美。不知道我的错误是什么 在这里做。
请帮我解决这个问题,提前谢谢。
答案 0 :(得分:1)
您只有一个obj
实例,它不断更新相同的内存位置。在最后的循环周期中,它会以第3个值更新并显示给您。但是,是的,你在列表中添加了3次,所以你有三次相同的对象。
移动
FeedDataClass obj=new FeedDataClass();
JSONObject jsonInnerObj = null;
在for
圈内。