Saltearse al contenido

Introducción a JSON

JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos. Gson es una biblioteca de Java desarrollada por Google que permite convertir objetos Java en su representación JSON y viceversa.

Configuración del proyecto

Primero, debemos incluir Gson en el proyecto. Usando Maven, añadimos esta dependencia al pom.xml:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.11.0</version>
</dependency>

Creación de clases para representar datos JSON

Vamos a crear algunas clases que representen una estructura de datos:

1
import java.util.List;
2
3
public class Persona {
4
private String nombre;
5
private int edad;
6
private List<String> hobbies;
7
private Direccion direccion;
8
9
// Constructores, getters y setters
10
}
11
12
public class Direccion {
13
private String calle;
14
private String ciudad;
15
private int codigoPostal;
16
17
// Constructores, getters y setters
18
}
19
20
public class Empresa {
21
private String nombre;
22
private List<Persona> empleados;
23
24
// Constructores, getters y setters
25
}

4. Serialización: De objeto Java a JSON

Para convertir objetos Java a JSON:

1
import com.google.gson.Gson;
2
import com.google.gson.GsonBuilder;
3
import java.io.FileWriter;
4
import java.io.IOException;
5
import java.nio.charset.StandardCharsets;
6
import java.util.Arrays;
7
8
public class SerializeJSON {
9
public static void main(String[] args) {
10
Direccion direccion = new Direccion("Calle Principal 123", "Salta", 28001);
11
Persona persona = new Persona("María Gómez", 30, Arrays.asList("leer", "viajar"), direccion);
12
Empresa empresa = new Empresa("TechCop", Arrays.asList(persona));
13
14
Gson gson = new GsonBuilder().setPrettyPrinting().create();
15
String json = gson.toJson(empresa);
16
17
try (FileWriter writer = new FileWriter("empresa.json", StandardCharsets.UTF_8)) {
18
writer.write(json);
19
} catch (IOException e) {
20
e.printStackTrace();
21
}
22
}
23
}

Este código creará un archivo empresa.json con el contenido JSON formateado y codificado en UTF-8. Esto es para que los caracteres especiales se muestren correctamente.

Deserialización: De JSON a objeto Java

Para leer un archivo JSON y convertirlo en objetos Java:

1
import com.google.gson.Gson;
2
import java.io.FileReader;
3
import java.io.IOException;
4
import java.nio.charset.StandardCharsets;
5
6
public class DeserializeJSON {
7
public static void main(String[] args) {
8
Gson gson = new Gson();
9
10
try (FileReader reader = new FileReader("empresa.json", StandardCharsets.UTF_8)) {
11
Empresa empresa = gson.fromJson(reader, Empresa.class);
12
System.out.println("Nombre de la empresa: " + empresa.getNombre());
13
for (Persona empleado : empresa.getEmpleados()) {
14
System.out.println("Empleado: " + empleado.getNombre());
15
System.out.println("Ciudad: " + empleado.getDirección().getCiudad());
16
}
17
} catch (IOException e) {
18
e.printStackTrace();
19
}
20
}
21
}