Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / GSON: Generar JSON desde objetos Java

GSON: Generar JSON desde objetos Java

Por 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

Artículos similares

Sourcetrail ahora es Open Source

Sourcetrail el explorador de código fuente de los lenguaje C, C ++, Java y Python se pasa al Software Libre y desde ahor[...]

Buscar y cargar imagenes de disco

Cuando se almacenan imágenes en una aplicación java y se desea después a modo de registro buscar estas y cargarlas en al[...]

Añadir Splash Screen en Java/Netbeans

¿Splash Screen? El splash screen o traducido al aspañol 😉  es una «Pantalla de bienvenida» que se muestra cuando se ejec[...]

JLabel: Escalar imagen

El componente swing JLabel nos permite cargar una imagen con la propiedad setIcon, sin embargo la imagen no toma el tama[...]

Cliente/Servidor en java y c#

Como habíamos mencionado en un anterior post Ejemplo socket java Cliente/Servidor , el lenguaje de programación entre el[...]

native2ascii: Convertir caracteres Non-Unicode a Unicode

El JDK (Java Development Kit) tra una herramienta llamada native2ascii la cual permite convertir un fichero de una codif[...]