Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / GSON: Generar objetos java desde JSON

GSON: Generar objetos java desde JSON

Autor jc mouse miércoles, julio 5, 2017

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:

  • GSON 2.8.1
  • Netbeans 8.x
  • Conocimientos sobre JSON

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 http://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 http://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 http://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:

  • Si el JSON no es equivalente a la clase que queremos obtener, nos retornara NULL
  • Si el JSON tiene campos que no están presentes en las clases que se quiere convertir, estas serán ignoradas
  • Si el JSON no tiene campos que si están presentes en la clase java, estas tendrán el valor NULL o el valor predeterminado en la clase.
  • Si el JSON que se quiere deserializar no es JSON valido, saltara una excepción (JsonSyntaxException)

dicho esto, si ejecutamos el código anterior obtendremos:

gson json example

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

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! :)

También Te Podría Interesar

ANSI: Colorear consola de salida de Netbeans

ANSI: Colorear consola de salida de Netbeans

Cuando realizamos proyectos java desde Netbeans, usamos System.out.println para imprimir datos en consola (para depurar,...

Juego de Tragamonedas o Tragaperras

Juego de Tragamonedas o Tragaperras

El juego de las tragamonedas o tragaperras es un juego muy popular de azar que se puede encontrar tanto en los casinos o...

Ejemplo práctico de MVC java Swing con Netbeans

Ejemplo práctico de MVC java Swing con Netbeans

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter...

Código de Control en PHP v7.0 Bolivia

Código de Control en PHP v7.0 Bolivia

NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p...

Arrastrar y cargar archivo Excel *.xlsx en tabla Java

Arrastrar y cargar archivo Excel *.xlsx en tabla Java

A continuación tenemos una clase que nos permite arrastrar un archivo de Excel (*.xlsx) y cargar su contenido en una tab...

Gráficos estadísticos con Base de Datos SQLite

Gráficos estadísticos con Base de Datos SQLite

Si necesitamos mostrar gráficos estadísticos en nuestras aplicaciones android, contamos con muchas librerías disponibles...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

MAUS es una aplicación para dispositivos móviles con el Sistema Operativo Android que te permite realizar exámenes desde...

En este post crearemos una aplicación en Android Studio para conectarnos con nuestra base de datos de Firebase y leer al...

Firebase es la plataforma para el desarrollo de aplicaciones web y aplicaciones móviles de Google el cual se centra en e...

Si bien se puede hacer uso de archivos de imagen (jpg, png, bmp, etc) en las aplicaciones java, también este te permite...

Android Bolivia

Bandera en Alto