diff --git a/solLab/pom.xml b/solLab/pom.xml
new file mode 100644
index 0000000..58a8fc3
--- /dev/null
+++ b/solLab/pom.xml
@@ -0,0 +1,25 @@
+
+
+ 4.0.0
+
+ org.example
+ solLab
+ 1.0-SNAPSHOT
+
+
+ 21
+ 21
+ UTF-8
+
+
+
+
+ com.google.code.gson
+ gson
+ 2.10
+
+
+
+
\ No newline at end of file
diff --git a/solLab/src/main/java/Apartment.java b/solLab/src/main/java/Apartment.java
new file mode 100644
index 0000000..77394cc
--- /dev/null
+++ b/solLab/src/main/java/Apartment.java
@@ -0,0 +1,92 @@
+import java.util.UUID;
+
+public class Apartment {
+ private final String id;
+ private String address;
+ private double price;
+ private int rooms;
+ private String description;
+ private String owner;
+ private boolean available;
+
+ public Apartment() {
+ // Generar un ID único usando UUID
+ this.id = UUID.randomUUID().toString();
+ }
+
+ public Apartment(String address, double price, int rooms, String description, String owner, boolean available) {
+ // Generar un ID único usando UUID
+ this.id = UUID.randomUUID().toString();
+ this.address = address;
+ this.price = price;
+ this.rooms = rooms;
+ this.description = description;
+ this.owner = owner;
+ this.available = available;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+ public int getRooms() {
+ return rooms;
+ }
+
+ public void setRooms(int rooms) {
+ this.rooms = rooms;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getOwner() {
+ return owner;
+ }
+
+ public void setOwner(String owner) {
+ this.owner = owner;
+ }
+
+ public boolean isAvailable() {
+ return available;
+ }
+
+ public void setAvailable(boolean available) {
+ this.available = available;
+ }
+
+ @Override
+ public String toString() {
+ return "Apartment{" +
+ "id=" + id +
+ ", address='" + address + '\'' +
+ ", price=" + price +
+ ", rooms=" + rooms +
+ ", description='" + description + '\'' +
+ ", owner='" + owner + '\'' +
+ ", available=" + available +
+ '}';
+ }
+}
diff --git a/solLab/src/main/java/ApartmentCreator.java b/solLab/src/main/java/ApartmentCreator.java
new file mode 100644
index 0000000..e7591e6
--- /dev/null
+++ b/solLab/src/main/java/ApartmentCreator.java
@@ -0,0 +1,45 @@
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ApartmentCreator {
+ public static void main(String[] args) {
+ // Crear algunos apartamentos
+ Apartment apartment1 = new Apartment("Calle Mayor 123", 1200.50, 3, "Apartamento céntrico con vistas", "Juan Pérez", true);
+ Apartment apartment2 = new Apartment("Avenida Libertad 45", 950.75, 2, "Apartamento luminoso y reformado", "Ana García", false);
+ Apartment apartment3 = new Apartment("Plaza España 7", 1500.00, 4, "Amplio piso con terraza", "Carlos Rodríguez", true);
+ Apartment apartment4 = new Apartment("Calle Nueva 28", 850.25, 1, "Estudio moderno en zona tranquila", "Laura Martínez", true);
+
+ // Crear una lista y añadir los apartamentos
+ List apartmentList = new ArrayList<>();
+ apartmentList.add(apartment1);
+ apartmentList.add(apartment2);
+ apartmentList.add(apartment3);
+ apartmentList.add(apartment4);
+
+ // Mostrar los apartamentos creados
+ System.out.println("Apartamentos creados:");
+ for (Apartment apartment : apartmentList) {
+ System.out.println(apartment);
+ }
+
+ // Iteración 5: Generar JSON
+ Gson gson = new GsonBuilder().setPrettyPrinting().create();
+
+ // Convertir la lista de apartamentos a JSON
+ String json = gson.toJson(apartmentList);
+
+ // Escribir el JSON en un archivo
+ try (FileWriter writer = new FileWriter("solLab/src/main/resources/new_apartments.json")) {
+ writer.write(json);
+ System.out.println("\nJSON generado y guardado correctamente en src/main/resources/new_apartments.json");
+ } catch (IOException e) {
+ System.err.println("Error al escribir el archivo JSON: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
diff --git a/solLab/src/main/java/ApartmentManager.java b/solLab/src/main/java/ApartmentManager.java
new file mode 100644
index 0000000..7159873
--- /dev/null
+++ b/solLab/src/main/java/ApartmentManager.java
@@ -0,0 +1,58 @@
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class ApartmentManager {
+ public static void main(String[] args) {
+ try {
+ // Obtener el archivo JSON como recurso
+ InputStream inputStream = ApartmentManager.class.getClassLoader().getResourceAsStream("apartments.json");
+
+ if (inputStream == null) {
+ System.err.println("No se pudo encontrar el archivo apartments.json");
+ return;
+ }
+
+ // Crear un Reader para leer el archivo
+ Reader reader = new InputStreamReader(inputStream);
+
+ // Crear una instancia de Gson
+ Gson gson = new Gson();
+
+ // Definir el tipo de la lista de apartamentos
+ Type apartmentListType = new TypeToken>(){}.getType();
+
+ // Convertir el JSON a una lista de objetos Apartment
+ List apartments = gson.fromJson(reader, apartmentListType);
+
+ // Cerrar el reader
+ reader.close();
+
+ // Mostrar la lista de apartamentos
+ System.out.println("Apartamentos cargados desde el JSON:");
+ for (Apartment apartment : apartments) {
+ System.out.println(apartment);
+ }
+
+ // Alternativamente, puedes crear una nueva lista y usar Collections.addAll()
+ List newApartmentsList = new ArrayList<>();
+ Collections.addAll(newApartmentsList, apartments.toArray(new Apartment[0]));
+
+ System.out.println("\nApartamentos en la nueva lista:");
+ for (Apartment apartment : newApartmentsList) {
+ System.out.println(apartment);
+ }
+
+ } catch (Exception e) {
+ System.err.println("Error al leer el archivo JSON: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/apartments.json b/solLab/src/main/resources/apartments.json
similarity index 100%
rename from apartments.json
rename to solLab/src/main/resources/apartments.json