私は次の形式のJSONオブジェクトを持っている:エラー(Java)の
{
"_id": "1",
"trips": [{
"origin": "Spain",
"destination": "France"
}, {
"origin": "Italy",
"destination": "Germany"
}, {
"origin": "Portugal",
"destination": "Ireland"
}]
}
私の目標は、私は次のコードを持っているため、このJSONを解析し、旅のArrayListのを得ることです:
class Trip {
String origin;
String destination;
}
ArrayList<Trip> tripList;
public ArrayList<Trip> getTripList(String json){
Trip thisTrip = new Trip();
ArrayList<Trip> thisTripList = new ArrayList<Trip>();
try {
JSONObject jsonObject = new JSONObject(json);
JSONArray tripArray = jsonObject.getJSONArray("trips");
for(int i = 0; i < tripArray.length(); i++){
JSONObject tripInstance = tripArray.getJSONObject(i);
thisTrip.origin = tripInstance.getString("origin");
thisTrip.destination = tripInstance.getString("destination");
thisTripList.add(thisTrip);
}
return(thisTripList);
} catch (JSONException e) {
e.printStackTrace();
return(null);
}
}
しかし、私は私が正しいサイズ3のArrayListのを取得し、以下に示すように、この方法を実行するが、ときに同じすべての原点/宛先値(すなわちポルトガル、ポルトガル、ポルトガル有し、アイルランド、アイルランド、アイルランド)。私は間違って何をしていますか?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//...
Trip trip = new Trip();
tripList = new ArrayList<Trip>();
tripList = getTripList(json);
//...
将来のためのヒント。 getterとsetterでモデルクラスをよく使う –