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/