Java 包含JSON对象的Android迭代JSON数组
所以我有这段代码,它基本上从JSON数组(包含几个对象)中获取一个值,并适当地分配它Java 包含JSON对象的Android迭代JSON数组,java,android,json,arrays,Java,Android,Json,Arrays,所以我有这段代码,它基本上从JSON数组(包含几个对象)中获取一个值,并适当地分配它 // RETRIEVE CAST LIST JSONArray jCastArr = jObj.getJSONArray("abridged_cast"); Cast person = new Cast(); ArrayList<Cast> castList= new ArrayList<Cast>(); for (int i=0; i < jCastArr.length();
// RETRIEVE CAST LIST
JSONArray jCastArr = jObj.getJSONArray("abridged_cast");
Cast person = new Cast();
ArrayList<Cast> castList= new ArrayList<Cast>();
for (int i=0; i < jCastArr.length(); i++) {
JSONObject jpersonObj = jCastArr.getJSONObject(i);
person.castId = (String) jpersonObj.getString("id");
person.castFullName = (String) jpersonObj.getString("name");
castList.add(person);
}
details.castList = castList;
问题是当我这样称呼它的时候
ArrayList<Cast> list = details.castList;
Cast actor = list.get(0);
String temp = actor.castFullName;
longToast(temp);
ArrayList list=details.castList;
演员=list.get(0);
字符串temp=actor.castFullName;
longToast(温度);
它将始终返回Katee Sackhoff(无论它是什么指数位置)。我曾尝试使用for循环对其进行迭代,但我只想保持它的简单性以便于调试。您对每个条目使用相同的强制转换对象。
在每次迭代中,您只是更改了相同的对象,而不是创建一个新对象 此代码应该修复它:
JSONArray jCastArr = jObj.getJSONArray("abridged_cast");
ArrayList<Cast> castList= new ArrayList<Cast>();
for (int i=0; i < jCastArr.length(); i++) {
Cast person = new Cast(); // create a new object here
JSONObject jpersonObj = jCastArr.getJSONObject(i);
person.castId = (String) jpersonObj.getString("id");
person.castFullName = (String) jpersonObj.getString("name");
castList.add(person);
}
details.castList = castList;
JSONArray jCastArr=jObj.getJSONArray(“节选”);
ArrayList castList=新的ArrayList();
for(int i=0;i
您对每个条目使用相同的强制转换对象。在每次迭代中,您只是更改了相同的对象,而不是创建一个新对象 此代码应该修复它:
JSONArray jCastArr = jObj.getJSONArray("abridged_cast");
ArrayList<Cast> castList= new ArrayList<Cast>();
for (int i=0; i < jCastArr.length(); i++) {
Cast person = new Cast(); // create a new object here
JSONObject jpersonObj = jCastArr.getJSONObject(i);
person.castId = (String) jpersonObj.getString("id");
person.castFullName = (String) jpersonObj.getString("name");
castList.add(person);
}
details.castList = castList;
JSONArray jCastArr=jObj.getJSONArray(“节选”);
ArrayList castList=新的ArrayList();
for(int i=0;i
Aww。。断裂我想我看过头了。谢谢你的提示。真的很感激。啊。。断裂我想我看过头了。谢谢你的提示。非常感谢。