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

GSON: Generar JSON desde objetos Java

Autor jc mouse jueves, junio 29, 2017

Gson es una biblioteca de código abierto para Java desarrollado por Google Inc que permite la serialización y deserialización entre objetos java y su representación en notación JSON (JavaScript Object Notation) el que nos sirve para el intercambio de datos. Puedes obtener más información (en ingles) desde google/gson y descargar la ultima versión la fecha GSON 2.8.1 , si usas Maven puedes usar la librería desde su repositorio GSON Repository.

En este post te mostrare un ejemplo de como convertir un objeto java en notación JSON.

Lo primero que hacemos es declarar las clases que queremos pasar a JSON

Clase: Ejemplo.java

A continuación una clase trivial donde se implementan la mayoría de los objetos usados en una clase java incluido, otras clases.

import java.util.List;
import java.util.Map;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Ejemplo {
    
    private int id;
    private String nombre_completo;
    private char sexo;
    private boolean soltero;    
    private Pais pais;
    private List<String> hobbies;
    private long[] array_de_numeros;            
    private double[] array_de_numeros_double;     
    private Map<String, String> mas_cosas;

    public Ejemplo() {}
    
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre_completo() {
        return nombre_completo;
    }

    public void setNombre_completo(String nombre_completo) {
        this.nombre_completo = nombre_completo;
    }

    public char getSexo() {
        return sexo;
    }

    public void setSexo(char sexo) {
        this.sexo = sexo;
    }

    public boolean isSoltero() {
        return soltero;
    }

    public void setSoltero(boolean soltero) {
        this.soltero = soltero;
    }

    public Pais getPais() {
        return pais;
    }

    public void setPais(Pais pais) {
        this.pais = pais;
    }

    public List<String> getHobbies() {
        return hobbies;
    }

    public void setHobbies(List<String> hobbies) {
        this.hobbies = hobbies;
    }

    public long[] getArray_de_numeros() {
        return array_de_numeros;
    }

    public void setArray_de_numeros(long[] array_de_numeros) {
        this.array_de_numeros = array_de_numeros;
    }

    public double[] getArray_de_numeros_double() {
        return array_de_numeros_double;
    }

    public void setArray_de_numeros_double(double[] array_de_numeros_double) {
        this.array_de_numeros_double = array_de_numeros_double;
    }
    
    public Map<String, String> getMas_cosas() {
        return mas_cosas;
    }

    public void setMas_cosas(Map<String, String> mas_cosas) {
        this.mas_cosas = mas_cosas;
    }
    
}

Clase: Pais.java

Esta clase complementa la clase anterior que hace uso de ella.

import java.util.List;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Pais {
    
    private String nombre;
    private List<String> ciudades;

    public Pais() {}
    
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public List<String> getCiudades() {
        return ciudades;
    }

    public void setCiudades(List<String> ciudades) {
        this.ciudades = ciudades;
    }
}

Y para convertir a JSON usamos:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Main {
    
    public static void main(String[] args) {
        
        //Nueva instancia de clase Ejemplo
        Ejemplo ejemplo = new Ejemplo();
        
        ejemplo.setId(7);
        ejemplo.setNombre_completo("Olga Disima Deloyo");
        ejemplo.setSexo('F');
        ejemplo.setSoltero(false);
        
        Pais pais = new Pais();
        pais.setNombre("Bolivia");
        List<String> ciudades = new ArrayList<>();
        ciudades.add("Santa Cruz");
        ciudades.add("Cochabamba");
        ciudades.add("Tarija");
        ciudades.add("Cobija");
        pais.setCiudades(ciudades);
        ejemplo.setPais(pais);        
        
        List<String> hobbies = new ArrayList<>();
        hobbies.add("Jugar al Poker");
        hobbies.add("Hacer Yoga");
        hobbies.add("Matangana");
        ejemplo.setHobbies(hobbies);
        
        ejemplo.setArray_de_numeros(new long[] { 777, 12321, 987654321 });        
        ejemplo.setArray_de_numeros_double(new double[] { 1.7008f, 0.05f, 100.00f });
        
        Map<String, String> mas_cosas = new HashMap<>();
        mas_cosas.put("001A", "Hola");
        mas_cosas.put("001B", "Mundo");
        mas_cosas.put("002A", "Cruel");
        ejemplo.setMas_cosas(mas_cosas);
        
        //GSON 
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String jsonEjemplo = gson.toJson(ejemplo);
        System.out.println(jsonEjemplo);        
        
    }
    
}

Lo que nos dará como resultado:

{
  "id": 7,
  "nombre_completo": "Olga Disima Deloyo",
  "sexo": "F",
  "soltero": false,
  "pais": {
    "nombre": "Bolivia",
    "ciudades": [
      "Santa Cruz",
      "Cochabamba",
      "Tarija",
      "Cobija"
    ]
  },
  "hobbies": [
    "Jugar al Poker",
    "Hacer Yoga",
    "Matangana"
  ],
  "array_de_numeros": [
    777,
    12321,
    987654321
  ],
  "array_de_numeros_double": [
    1.7007999420166016,
    0.05000000074505806,
    100.0
  ],
  "mas_cosas": {
    "001A": "Hola",
    "001B": "Mundo",
    "002A": "Cruel"
  }
}

gson 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

iFrame Injection – Ocultar código malicioso

iFrame Injection – Ocultar código malicioso

En ocasiones los administradores de sitios web experimentan problemas de lentitud en su carga o en el peor de los casos...

Generador de código para Netbeans

Generador de código para Netbeans

El IDE Netbeans al igual que Eclipse :), nos permite personalizar el espacio de trabajo y añadir funcionalidades que nos...

JPlay CD – Autoejecutable para java

JPlay CD – Autoejecutable para java

En este tutorial se explica una forma de crear CD autoejecutable para programas hechos en java asi como para instalar la...

Sistema de gestión de stock – El Controlador (Parte 5)

Sistema de gestión de stock – El Controlador (Parte 5)

Para terminar el tutorial, debemos unir tanto la VISTA como el MODELO y para eso esta el CONTROLADOR. o.O El controlador...

Imprimir imagen con Print

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, e...

GridView con imagenes en miniatura

GridView con imagenes en miniatura

Entre las muchas aplicaciones que hay en la playstore de google están las galerías de fotos de chicas 🙂 que tantos nos e...

Comparte lo que sabes

Categorias

Últimas entradas

Lorca Editor es una aplicación online creada por el desarrollador español Domingo Martin el cual tiene como objetivo el...

Eratóstenes era un matemático griego del siglo  III a.C. el cual ideó una manera rápida de obtener todos los números pri...

Las matemáticas son fundamentales para la vida y aparte de las actividades clásicas de enseñanza desarrolladas en el aul...

MVC es un patrón de arquitectura de software que separa una aplicación en tres componentes lógicos principales.  Estos s...

Herramientas

Generador de Enlaces a Whatsapp