JSONArrayをループしています。names
とamount
はArrayList <String>
JSONArray data = json.getJSONArray("data");
int i = 0;
for (i = 0; i < data.length(); ++i) {
JSONObject rec = data.getJSONObject(i);
String name = rec.getString("name");
names.add(i, name);
String amount_v = rec.getString("amount");
amount.add(i, amount_v);
Log.v(logtag, i + " - " + names.size());
}
Log.v(logtag, "final - " + names.size());
ループ内に要素を1つだけ追加している場合でも、iのすべての値について、names.size()はiの2倍です。データには、名前と金額が2列の5つのレコードがあります。ただし、ループの後、名前には10個の値すべて(5個の名前と5個の金額)が含まれます。しかし実際には、5つの名前だけが名前リストに追加されるべきでした。
ログに表示されるもの。
0 - 2
1 - 4
2 - 6
3 - 8
4 - 10
final - 10
なぜamount_v
名前リストにの値を追加するのですか?