0
我有一个JSON对象的JSONArray,每个JSON对象都是一个带有“kind”键的字符串。我试图通过JSONarray循环,并通过“kind”组织它们来填充SeperatedListAdapter。我试图做到的,是这种结构Android for-loop陷入无尽循环
{
communications[
{ "header":"kind"
communications[
{}
{}
{}
{}
]
}
{ "header":"kind"
communications[
{}
{}
{}
{}
]
}
]
}
我遇到的问题是for循环我已经创建了实现这一目标的陷入无限循环得到,因此崩溃的应用程序。有谁知道我在哪里出了问题?
这里是我的代码,我知道它陷在一个循环,因为它运行日志“1”的约1000倍,即使我知道,只有5我传递的数组中的东西。
for(int i = 0; i < communicationsFromFile.length(); i++){
JSONObject communication = communicationsFromFile.getJSONObject(i);
Log.v("Communications", "kind = " + communication.getString("kind"));
Log.v("Communications", "newComArray = " + newComArray);
if(newComArray.length() != 0){
Log.v("Communications", "newComArray IsNotempty");
for(int a = 0; a < newComArray.length();a++){
JSONObject itemInArray = newComArray.getJSONObject(a);
JSONArray communicationsForKind = itemInArray.getJSONArray("communications");
Log.v("Communications", "1");
if(itemInArray.getString("header").equals(communication.getString("kind"))){
Log.v("Communications", "Header Exists");
communicationsForKind.put(communication);
itemInArray.put("communications", communicationsForKind);
newComArray.put(itemInArray);
}else{
Log.v("Communications", "Header Does not Exist");
JSONObject addItemInArray = new JSONObject();
JSONArray addArrayToItem = new JSONArray();
addArrayToItem.put(communication);
addItemInArray.put("header", communication.getString("kind"));
addItemInArray.put("communications", addArrayToItem);
newComArray.put(addItemInArray);
}
}
}else{
JSONObject addItemInArray = new JSONObject();
JSONArray addArrayToItem = new JSONArray();
addArrayToItem.put(communication);
addItemInArray.put("header", communication.getString("kind"));
addItemInArray.put("communications", addArrayToItem);
newComArray.put(addItemInArray);
}
}
感谢您的帮助,你可以解释更高我不知道你的意思 – iamlukeyb 2014-10-05 12:34:02
我想通了,我改变了neComArray到orignal数组 – iamlukeyb 2014-10-05 13:12:13