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