- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Recibir datos JSON como Objeto Java SpringBoot
En esta entrada responderemos lo siguiente:
- Recibir petición JSON y convertirlo a objeto o entidad Java
- Deserializar JSON a objeto Java
- Pasar datos desde JSON a Java SpringBoot
- Recibir objeto/entidad Java desde JSON
- Comunicar Front end con Back end
- Preparar request/petición JSON para pasar datos a Java SpringBoot
Realizaremos un mapeo de una petición JSON de Postman hacia un endpoint o rest controller de Spring Boot y lo obtendremos en un objeto o entidad Java.
Suponiendo que tenemos una entidad Java llamada Persona y esa entidad tiene varios atributos como lo siguiente:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Persona { | |
private int id; | |
private String nombre; | |
private String apellido; | |
private String telefono; | |
private String ciudad; | |
private String domicilio; | |
private String rfc; | |
private String curp; | |
public int getId() { | |
return id; | |
} | |
public void setId(int id) { | |
this.id = id; | |
} | |
public String getNombre() { | |
return nombre; | |
} | |
public void setNombre(String nombre) { | |
this.nombre = nombre; | |
} | |
public String getApellido() { | |
return apellido; | |
} | |
public void setApellido(String apellido) { | |
this.apellido = apellido; | |
} | |
public String getTelefono() { | |
return telefono; | |
} | |
public void setTelefono(String telefono) { | |
this.telefono = telefono; | |
} | |
public String getCiudad() { | |
return ciudad; | |
} | |
public void setCiudad(String ciudad) { | |
this.ciudad = ciudad; | |
} | |
public String getDomicilio() { | |
return domicilio; | |
} | |
public void setDomicilio(String domicilio) { | |
this.domicilio = domicilio; | |
} | |
public String getRfc() { | |
return rfc; | |
} | |
public void setRfc(String rfc) { | |
this.rfc = rfc; | |
} | |
public String getCurp() { | |
return curp; | |
} | |
public void setCurp(String curp) { | |
this.curp = curp; | |
} | |
} |
Por tanto le enviaremos esa estructura para que el endpoint pueda recibirla correctamente y convertirla.
Si imprimimos cada propiedad del objeto obtendremos los datos correctamente.
El nombre de los atributos tiene que coincidir, además tiene que coincidir con el tipo de dato, si es entero o decimal tiene que ir sin comillas y si es String entonces tiene que ir dentro de comillas.
Ahora imaginemos que queremos enviar una lista Personas. Nuestro endpoint tiene que estar preparado para recibir una lista de tipo Persona.
Nuestro endpoint ahora quedaría de la siguiente manera:
Para cada estructura de Persona que recibamos imprimiremos sus valores.
La petición o request JSON quedaría de la siguiente manera:
El resultado en Java sería el esperado:
Por ultimo si quisiéramos enviarle también una lista de números de teléfonos, es decir, una Persona puede tener varios números y queremos registrarlos también. Tenemos que modificar nuestro Objeto Persona de la siguiente manera:
Nuestro endpoint quedaría de la siguiente manera:
Para cada número de teléfono que traiga el objeto Persona lo imprimiremos. Tenemos dos forEach uno dentro de otro para recorrer cada elementos de la lista.
El request o petición JSON quedaría de la siguiente manera:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"id": 1, | |
"nombre": "Jhon Nova", | |
"apellido": "Dalton", | |
"listTelefonos": [ | |
"5569854412", | |
"5569857899" | |
], | |
"ciudad": "Boston", | |
"domicilio": "Conocido", | |
"rfc": "JIHO45689", | |
"curp": "ASDASDASDASD89A" | |
}, | |
{ | |
"id": 2, | |
"nombre": "Chapulin", | |
"apellido": "Colorado", | |
"listTelefonos": [ | |
"5777899000", | |
"4446788888" | |
], | |
"ciudad": "Mexico", | |
"domicilio": "Conocido", | |
"rfc": "CHAPULIN123", | |
"curp": "CHAPU2345555" | |
} | |
] |
El resultado sería:
Estás peticiones o request JSON se pueden armar desde un back end, por ejemplo con ReactJS o Angular y muchos otros frameworks que están orientados al front, y de esta manera Java puede procesar la información.
De manera general esta es la forma más común de comunicar servicios o microservicios que están programados en diferentes lenguajes.
De mi parte sería todo.
Cualquier duda o sugerencia con gusto estaré respondiendo.
Saludos!
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario