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.
}
}
リスト オブジェクトが onLoadComplete 関数に渡されるのはなぜですか? POJO クラスに最後に追加された項目しか含まれていません。