Ir al contenido principal

De Java a JSON con Gson





Saludos a todos, retomando el Blog les voy a mostrar un sencillo ejemplo de cómo convertir datos de Java a la sintaxis JSON y luego hacer la acción inversa utilizando Gson de Google para resolverlo

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.

Qué necesitamos?

Sólo necesitamos descargar el .JAR correspondiente, si estás usando Maven necesitas la siguiente dependencia:

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.4</version>
</dependency>


Si deseas descargar el archivo .jar puedes usar este archivo gson-2.8.4.jar del repositorio de Maven.

Crea un Proyecto Java en Eclipse

1.Abra Eclipse y cree un proyecto Java Standar



2. Una vez creado el proyecto, será suficiente con crear un paquete en el folder SRC, nombre el paquete como ejemplo.json. No olvide añadir la librería al build path.

3. Cree una clase que vamos a denominar Producto y cuya implementación es la siguiente:


public class Producto {

 private String descripcion;
 private double precio;
 private int stock;

 public Producto() {
 }

 public Producto(String descripcion, double precio, int stock) {

  this.descripcion = descripcion;
  this.precio = precio;
  this.stock = stock;
 }

 public String getDescripcion() {
  return descripcion;
 }

 public void setDescripcion(String descripcion) {
  this.descripcion = descripcion;
 }

 public double getPrecio() {
  return precio;
 }

 public void setPrecio(double precio) {
  this.precio = precio;
 }

 public int getStock() {
  return stock;
 }

 public void setStock(int stock) {
  this.stock = stock;
 }

 @Override
 public String toString() {
  return "Producto [descripcion=" + 
    descripcion + ", precio=" + 
    precio + ", stock=" + 
    stock + "]";
 }

}


Ahora crearemos una clase Main denominada GsonTest en el mismo paquete, esta clase tendrá la siguiente definición:

import java.io.FileWriter;
import java.io.IOException;

import com.google.gson.Gson;

public class GSonTest {

 public static void main(String[] args) {
  Producto producto = new Producto("Laptop HP", 4500.00, 155);

  Gson gson = new Gson();
  String json = gson.toJson(producto);
  System.out.println(json);

  try (FileWriter writer = new FileWriter("producto.json")) {

   gson.toJson(producto, writer);

  } catch (IOException e) {
   e.printStackTrace();
  }

 }

}

Explicación:

Primero creamos un objeto de la clase Producto con datos estáticos pasados a través de su constructor, luego requerimos una instancia de la clase Gson, inmediatamente la variable String json recibe la cadena JSON directamente del objeto gson a través de su método toJson, quien es quien se encarga de la traducción a JSON.

Luego creamos un archivo utilizando la clase FileWriter, invocamos a la sobrecarga de toJson que permite construir la cadena JSON en un archivo y eso es todo!!

Podemos abrir el archivo y ver el contenido con el formato  JSON. No olviden que esto es un demo, por lo tanto hay que pensar en extrapolar este ejemplo en algo más interesante como por ejemplo tener un ArrayList de objetos y serializarlos a JSON todos ellos para posteriormente deserializarlos y regresarlos a su origen, precisamente eso haremos en mi siguiente publicación

Muchas gracias por su atencion Hasta la próxima!

Comentarios

Entradas populares de este blog

Microsoft Access - Entrega 02

Establecer Índices y Claves primarias: Los índices permiten especificar un orden para la búsqueda de registros, su principal tarea es esta, básicamente cualquier campo de una Tabla puede ser un índice, incluso un conjunto de campos pueden ser índices, (los que suelen denominarse INDICES COMPUESTOS). Para definir un índice en un campo de una tabla basta con especificar la propiedad correspondiente, o también utilizar el botón Índice, tal como se muestra en la Imagen:      Por ejemplo, digamos que nos piden crear un índice compuesto denominado FullName que abarca los campos Apellidos y Nombres. Para realizar esa tarea haga click en el botón Índices y luego configure de acuerdo a la imagen:       Clave Principal: La clave primaria permite identificar de manera única a un registro, por teoría de diseño de base de datos, cada Tabla debe tener su correspondiente clave primaria para facilitar tareas de búsqueda y actualización de registros. Para definir u...

Microsoft Access - Entrega 01

Bienvenidos al curso Online de Microsoft Access 2007, durante el desarrollo del curso iré posteando un sencillo tutorial para aprender a utilizar esta herramienta de gestión de bases de datos, de tal manera que al finalizar todas las entregas Ud. sepa cómo iniciarse en el diseño de Bases de datos así como en la construcción de versátiles aplicaciones. Qué es una base de datos? Una base de datos (en ocasiones abreviada B.D.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Fuente: Wikipedia Qué es un Programa Gest...

II Semestre - JAVA: EJERCICIOS SOBRE JERARQUIAS DE HERENCIA

Debate: Discutir las formas en que la herencia promueve la reutilización de software, se ahorra tiempo durante el desarrollo del programa y ayuda a prevenir errores. Ejercicio: Diseñar una jerarquía de herencia para los estudiantes en una universidad. Usar la clase Student como la superclase de la jerarquía, a continuación, extender Student con las clases de UndergraduateStudent y GraduateStudent . Continúe extendiendo la jerarquía tando como sea posible(como muchos niveles). Por ejemplo, Freshman , Sophomore , Junior y Senior podría heredar de UndergraduateStudent , asi mismo  DoctoralStudent y MastersStudent podría ser subclases de GraduateStudent . Despues de diseñar la jerarquía debatir las relaciones que existen entre las clases. [Nota: No es necesario escribir ningún código para este ejercicio.] Debate Algunos programadores prefieren no utilizar el acceso protegido, porque creen que rompe la encapsulación de la superclase. Discutir los méritos relativos de acceso pr...