Gson
Apariencia
Gson | ||
---|---|---|
Información general | ||
Tipo de programa | Biblioteca | |
Desarrollador | Google Inc. | |
Lanzamiento inicial | 22 de mayo de 2008 (16 años, 3 meses y 10 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 (7 años, 3 meses y 2 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()
ofromJson()
. - 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