Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含JSON对象的Android迭代JSON数组_Java_Android_Json_Arrays - Fatal编程技术网

Java 包含JSON对象的Android迭代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();

所以我有这段代码,它基本上从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(); 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。。断裂我想我看过头了。谢谢你的提示。真的很感激。啊。。断裂我想我看过头了。谢谢你的提示。非常感谢。