Gson

De Wikipedia, la enciclopedia libre
Gson
Información general
Tipo de programa Biblioteca
Desarrollador Google Inc.
Lanzamiento inicial 22 de mayo de 2008 (15 años, 11 meses y 20 días)
Licencia Apache License 2.0.
Estado actual Con soporte
Información técnica
Programado en Java
Versiones
Última versión estable 2.8.1 (info) ( 30 de mayo de 2017 (6 años, 11 meses y 12 días))
Archivos legibles
JavaScript Object Notation
Enlaces

Gson (también conocido como Google Gson) es una biblioteca de código abierto para el lenguaje de programación Java que permite la serialización y deserialización entre objetos Java y su representación en notación JSON.

Características[editar]

  • Permite la conversión entre objetos Java y JSON de una manera sencilla, simplemente invocando los métodos toJson() o fromJson().
  • Permite la conversión de objetos inmutables ya existentes.
  • Soporte para tipos genéricos de Java.
  • Permite la representación personalizada de objetos.
  • Soporte para "Objetos arbitrariamente complejos".

Historia[editar]

La biblioteca Gson nació como un proyecto interno de Google para su propio uso. Finalmente se decidió publicarla bajo una licencia Apache License 2.0.

Ejemplo de uso[editar]

De objeto Java a notación JSON[editar]

Partiendo del siguiente JavaBean:

public class Persona implements Serializable {
    private String nombre;
    private int edad;

    public String getNombre() {
        return nombre;
    }

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

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }
}

Se puede obtener su representación JSON de la siguiente manera:

    Persona persona = new Persona();
    persona.setNombre("Unai");
    persona.setEdad(28);

    Gson gson = new Gson();        
    System.out.println(gson.toJson(persona));

Con lo que obtendríamos la salida:

{"nombre":"Unai","edad":28}


De notación JSON a objeto Java[editar]

	
    String json = "{\"nombre\":\"Unai\",\"edad\":28}";

    Gson gson = new Gson();

    Persona persona = (Persona) gson.fromJson(json, Persona.class);    

    System.out.println(persona.getNombre());
    System.out.println(persona.getEdad());

Con lo que obtendríamos la salida:

Unai
28

Enlaces externos[editar]