public BookingListResult(JSONObject json) throws JSONException {
		super(json);
		
		if (json.has("result")) {
			JSONArray jsonArray = json.getJSONArray("result");
			String packageId = null;
			Vector packetItems = null;
			
			for (int i = 0; i < jsonArray.length(); i++) {
				JSONObject bookingJson = jsonArray.getJSONObject(i);
				Booking elem = null;
				if(bookingJson.has(TYPE)) {
					String type = bookingJson.getString(TYPE);
					if(type.equals(TYPE_FLIGHT)) {
						elem = new FlightBooking(bookingJson);
						this.flightBookings.addElement(elem);
					} else if(type.equals(TYPE_HOTEL)) {
						elem = new HotelBooking(bookingJson);
						this.hotelBookings.addElement(elem);
					} else if(type.equals(TYPE_RENTACAR)) {
						elem = new RentacarBooking(bookingJson);
						this.rentacarBookings.addElement(elem);
					} else if(type.equals(TYPE_EXCURSION)) {
						elem = new ExcursionBooking(bookingJson);
						this.excursionBookings.addElement(elem);
					}
				}
				
				// Build package
				if(bookingJson.has(PACKAGE_ID)) {
					String packId = bookingJson.getString(PACKAGE_ID);
					if(!packId.equals(packageId)) {
						packageId = packId;
						packetItems = new Vector();
						bookingPackages.addElement(packetItems);
					}
					packetItems.addElement(elem);
				}
				
			}
		}
	}