我正在一个项目中,我必须使用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中总共有三个帖子,但是每次我得到最后一个feed时。而且由于循环运行完美,它在UI中被打印了3次。不知道我在这里做什么错误。
帮我解决这个问题,谢谢。
您只有一个实例obj
可以继续更新相同的内存位置。在最后一个循环中,它将使用第三个值进行更新并显示给您。但是,是的,您在列表中将其添加了3次,因此您具有相同的对象三次。
移动
FeedDataClass obj=new FeedDataClass();
JSONObject jsonInnerObj = null;
内部for
循环。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句