Json es un formato de texto ligero para el intercambio de datos en la Web muy ampliamente usado, se supone que es un reemplazo para XML por ser más compacto y fácil de leer. En este ejemplo convertiremos un objeto de Java con información a una cadena de texto en formato Json con la ayuda de la librería Google Gson.
Importamos la dependencia en Maven:
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency>
El código es el siguiente:
package com.decodigo.ejemplos; import com.google.gson.Gson; import java.io.FileWriter; /** * * @author decodigo.com */ public class JsonConGson { public static void main(String args[]){ try { DatosEmpresa datosEmpresa = new DatosEmpresa(); datosEmpresa.setId(1); datosEmpresa.setNombre("Distribuidora de autopartes"); datosEmpresa.setDireccion("Calle Central No. 111"); Gson gson = new Gson(); String cadenaJson = gson.toJson(datosEmpresa); System.out.println("datosEmpresa Json: " + cadenaJson); FileWriter fileWriter = new FileWriter("/home/decodigo/Documentos/java/archivos/archivoJson.json"); fileWriter.write(cadenaJson); fileWriter.close(); } catch (Exception e) { e.printStackTrace(); } } }
Adicionalmente usamos una clase DatosEmpresa que sirve de ejemplo para convertir a formato de Json.
package com.decodigo.ejemplos; /** * * @author decodigo.com */ public class DatosEmpresa { private long id; private String nombre; private String direccion; private boolean estatus; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getDireccion() { return direccion; } public void setDireccion(String direccion) { this.direccion = direccion; } public boolean isEstatus() { return estatus; } public void setEstatus(boolean estatus) { this.estatus = estatus; } }
Convertimos nuestra instancia de DatosEmpresa a una cadena de Json que puede ser usada para responder a una petición en el caso de un servlet o para ser almacenada en un archivo de texto según sea tu necesidad.
Realmente no hay mucho que hacer, tan sólo usamos el método gson.toJson(datosEmpresa) y convertimos nuestro objeto datosEmpresa a una cadena.
Gson gson = new Gson(); String cadenaJson = gson.toJson(datosEmpresa);
Al ejecutar el ejemplo obtenemos el resultado siguiente:
Adicionalmente, guardamos nuestro objeto Json en un archivo archivoJson.json:
Y eso es todo. Esperamos que este ejemplo sea de utilidad.
Más información en inglés: https://geekole.com/json-with-google-gson-in-java/