javaCopy code
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
// Class representing a Ticket
class Ticket {
private String event;
private String date;
private String location;
private int price;
public Ticket(String event, String date, String location, int price) {
this.event = event;
this.date = date;
this.location = location;
this.price = price;
}
public JSONObject toJSON() {
JSONObject ticketJson = new JSONObject();
ticketJson.put("event", event);
ticketJson.put("date", date);
ticketJson.put("location", location);
ticketJson.put("price", price);
return ticketJson;
}
}
// Class representing the Ticket Provider
class TicketProvider {
public JSONArray getAllTickets() {
List<Ticket> tickets = new ArrayList<>();
tickets.add(new Ticket("Concert", "2023-07-15", "City Stadium", 50));
tickets.add(new Ticket("Sports Match", "2023-07-20", "Sports Arena", 30));
tickets.add(new Ticket("Theater Play", "2023-07-25", "Grand Theater", 80));
JSONArray ticketsJson = new JSONArray();
for (Ticket ticket : tickets) {
ticketsJson.put(ticket.toJSON());
}
return ticketsJson;
}
}
// Class representing the Ticket Consumer
class TicketConsumer {
public void displayTickets(JSONArray ticketsJson) {
System.out.println("Available Tickets:");
for (int i = 0; i < ticketsJson.length(); i++) {
JSONObject ticketJson = ticketsJson.getJSONObject(i);
String event = ticketJson.getString("event");
String date = ticketJson.getString("date");
String location = ticketJson.getString("location");
int price = ticketJson.getInt("price");
System.out.println("Event: " + event);
System.out.println("Date: " + date);
System.out.println("Location: " + location);
System.out.println("Price: $" + price);
System.out.println();
}
}
}
public class TicketSellingApp {
public static void main(String[] args) {
TicketProvider ticketProvider = new TicketProvider();
JSONArray ticketsJson = ticketProvider.getAllTickets();
TicketConsumer ticketConsumer = new TicketConsumer();
ticketConsumer.displayTickets(ticketsJson);
}
}