我使用For-loop从Json获取数据。这是我的代码:
try {
JSONObject jsonObj=new JSONObject(strri);
Privacy_Setting_Ozone_Feed obj=new Privacy_Setting_Ozone_Feed();
jsonArray=jsonObj.getJSONArray("Setting");
JSONArray jsonArray4=jsonObj.getJSONArray("blocklist");
Log.d("ads", jsonArray4.toString());
for(int i=0;i<jsonArray.length();i++)
{
JSONObject jsonInnerObj=jsonArray.getJSONObject(i);
try
{
obj.strvalue=jsonInnerObj.getString("value");
}catch(Exception e)
{
}
try
{
obj.str_name=jsonInnerObj.getString("name");
}catch(Exception e)
{
}
}
for (int j=0; j<jsonArray4.length(); j++)//----------(loop)
{
JSONObject jObject = jsonArray4.getJSONObject(j);
try
{
obj.str_image=jObject.getString("image");
Log.d("sadsa", obj.str_image);
}catch(Exception e)
{
}
try
{
obj.str_blockname=jObject.getString("name");
Log.d("test", obj.str_blockname);
}catch(Exception e)
{
}
arr.add(obj); //-------------------(1)
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return arr;//--------------(2)
}
在这个地方arr.add(obj);我正在考虑json的确切值, 就像有三个不同的值,所以我得到适当的三个 价值......但在返回点,我只得到最后一个价值 来自json循环。请让我知道我的错误 我在这里做。
答案 0 :(得分:0)
您只初始化obj
个对象一次,因为您正在修改的只有一个引用导致所有条目中具有相同的值。尝试在for循环中调用构造函数。它会解决你的问题。