List <Response> Data = new ArrayList <Response>();
Response object = null;
JSONObject documentRoot = new JSONObject(result);
JSONArray documentChild = documentRoot.getJSONArray("Main");
JSONArray allergyArray = null;
JSONArray vitalsArray = null;
for (int i = 0; i < documentChild.length(); i++) {
child = documentChild.getJSONObject(i);
if (Condition1) {
allergyArray = child.getJSONArray("Allergy");
} else if {
vitalsArray = child.getJSONArray("Vitals");
}
}
object = new Response(); // POJO class
if (null != allergyArray) {
for (int i = 0; i < allergyArray.length(); i++) {
object.setCap(allergyArray.getJSONObject(i).getString("Cap"));
object.setRea(allergyArray.getJSONObject(i).getString("Rea"));
}
}
if (null != vitalsArray) {
for (int i = 0; i < vitalsArray.length(); i++) {
object.setName(vitalsArray.getJSONObject(i).getString("Name"));
object.setMedic(vitalsArray.getJSONObject(i).getString("Medic"));
}
}
Data.add(object);
當我嘗試迭代並打印結果時,只有最後添加的項目被打印。只有最後添加的項目被打印
public void onLoadComplete(List <Response> item) {
for (int i = 0; i < item.size(); i++) {
Log.d("Get", item.get(i).getCap()); // I get only the last item which is added.
}
}
爲什麼我的List對象傳遞給onLoadComplete函數只包含添加到POJO類的最後一個項目。
Java是面向對象,不像PHP那樣程序化。你需要每次創建一個新的'Response'實例,而不是重複使用同一個實例。 – BalusC
@BalusC:我試圖在相應的for-loops中創建新的實例... object = new Response(); – Kevin
您必須創建新的'Response',然後調用'Data.add(object);',所有這些都在'for'循環中。 – acdcjunior