En un post anterior vimos como utilizar GSON para serializar un objeto java en JSON, en esta oportunidad se vera el procedimiento inverso, es decir dado un JSON se generara un objeto java a partir de el.
Necesitamos:
Paso 1. Clases
Lo primero que debemos hacer, es establecer las clases a las que queremos convertir el JSON, para este ejemplo son:
Clase: Estudiante.java
import java.util.List; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class Estudiante { private int id; private String name; private List<Materia> materiaList; public Estudiante() {} public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Materia> getMateriaList() { return materiaList; } public void setMateriaList(List<Materia> materiaList) { this.materiaList = materiaList; } @Override public String toString() { return "Estudiante:\n" + "id = " + id + "\nname = " + name + "\nMateriaList :\n" + materiaList; } }
Clase: Materia.java
/** * @see https://www.jc-mouse.net/ * @author mouse */ public class Materia { private String sigla; private String descripcion; public Materia() {} public Materia(String sigla, String descripcion) { this.sigla = sigla; this.descripcion = descripcion; } public String getSigla() { return sigla; } public void setSigla(String sigla) { this.sigla = sigla; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } @Override public String toString() { return "\nMateria : \n" + "sigla = " + sigla + "\ndescripcion = " + descripcion + "\n"; } }
En ambas clases se a declarado el método toString para ahorrarnos lineas de código en la impresión de los objetos.
Paso 2. JSON
El JSON que convertiríamos a su equivalente en un objeto de las clase Estudiante es:
{ "id": 12, "name": "Lola Mento Mucho", "materiaList": [ { "sigla": "IND-400", "descripcion": "Ingenieria Economica" }, { "sigla": "SIS-230", "descripcion": "Arquitectura de Computadoras" } ] }
Utilizando lo aprendido en el post [Generar JSON desde objetos Java] puedes crear un nuevo string json con los datos que quieras para realizar más pruebas.
Paso 3. Deserializando JSON
Para deserializar el JSON del paso 2, hacemos lo siguiente:
import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class Main { public static void main(String[] args) { String jsonString = "{\n" + " \"id\": 12,\n" + " \"name\": \"Lola Mento Mucho\",\n" + " \"materiaList\": [\n" + " {\n" + " \"sigla\": \"IND-400\",\n" + " \"descripcion\": \"Ingenieria Economica\"\n" + " },\n" + " {\n" + " \"sigla\": \"SIS-230\",\n" + " \"descripcion\": \"Arquitectura de Computadoras\"\n" + " }\n" + " ]\n" + "}"; try{ Gson gson = new Gson(); Estudiante ejemplo = gson.fromJson(jsonString, Estudiante.class); if( ejemplo!= null ){ //impresion de todo el objeto System.out.println(ejemplo); //impresion de propiedad de objeto System.out.println("\nNombre Estudiante : " + ejemplo.getName() ); } }catch(JsonSyntaxException e){ System.err.println("JsonSyntaxException: " + e.getMessage()); } } }
Cuando deserializamos JSON a objetos java, debemos tener en cuenta que:
dicho esto, si ejecutamos el código anterior obtendremos:
enjoy!!!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter...
Espresso es un framework de testing propiedad de Google que está dirigido a desarrolladores que creen que las pruebas au...
JTree cuenta con métodos que nos permiten cambiar los iconos de cada nodo según su estado, sin embargo a veces esto no e...
En un post anterior vimos como usar la herramienta XJC del JDK para generar clases java desde esquemas XSD (XML Schema D...
¿Quieres iniciarte en la programación? ¿Eres un programador impaciente que odia instalar cualquier software en su comput...
A veces navegando en la internet buscando novedades , investigando o simplemente perdiendo el tiempo 🙂 se encuentran cos...
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...