El formato de datos JSON se basa en dos estructuras:
- Objetos: son una colección de pares clave/valor, y van entre llaves { }
- Arrays: son una lista de valores, y van entre corchetes [ ]
Objetos
Para mapear un objeto JSON a Java, se debe definir una clase que contenga los campos equivalentes
a las claves del objeto JSON, y el tipo de estos campos debe ser del mismo tipo que los valores del objeto JSON.
El nombre de la clase puede ser cualquiera (a veces es difícil pensar qué nombre poner), pero el nombre de los campos
debe coincidir con las claves del objeto JSON.
{
"nombre": "Juan",
"edad": 18,
"nota": 7.75,
"matriculado": true
}
class Estudiante {
String nombre;
int edad;
float nota;
boolean matriculado;
}
También es posible que el valor de una clave JSON sea otro objeto. En este caso, se deberán crear una clase por cada tipo
de objeto:
{
"nombre": "Juan",
"ciclo" : {
"titulo": "DAM",
"curso": 2
}
}
class Estudiante {
String nombre;
CicloFormativo ciclo;
}
class CicloFormativo {
String titulo;
int curso;
}
Arrays
Para mapear listas JSON a Java, se debe crear una List con el tipo adecuado a los elementos de la lista JSON:
[ "SMX", "DAM", "ASIX", "DAW" ]
List<String>
[ 4, 13, 22, 35 ]
List<Integer>
El valor de una clave de un objeto JSON, puede ser una lista:
{
"notas": [ 6.5, 7.75, 4.1, 9.95 ]
}
class Boletin {
List<Integer> notas;
}
Los elementos de una lista pueden ser objetos (todos tienen que ser de la misma clase):
{
"estudiantes": [
{ "nombre": "juan" },
{ "nombre": "luis" },
{ "nombre": "paco" }
]
}
class Curso {
List<Estudiante> estudiantes;
}
class Estudiante {
String nombre;
}