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

Uso de Parámetros con el control SqlDataSource - Primera entrega

Una de las principales ventajas del control SqlDataSource , radica en la posibilidad de trabajar con parámetros, con este control es posible trabajar con cualquiera de los siguientes parámetros: Parameter ControlParameter CookieParameter FormParameter ProfileParameter QueryStringParameter SessionParameter A su vez, el control SqlDataSource incluye 5 colecciones de parámetros de ASP.NET: SelectParameters , InsertParameters , DeleteParameters , UpDateParameters y FilterParameters . Puede usar estas colecciones de parámetros para asociar un parámetro en particular de ASP.NET con algún comando o filtro en particular del control SqlDataSource. En este post haré mención a parámetros gestionados mediante Parameter y ControlParameter . En publicaciones posteriores me encargaré del resto de parámetros. Trabajaré para la explicación con la base de datos Pubs de SQL Server , si no la tiene debe instalarla, puede hacerlo siguiendo este link: http://www.microsoft.com/downloads/en/details

Estructuras de Control - Parte 2

Estructuras de Control Repetitivas Las computadoras están especialmente diseñadas para ejecutar tareas repetidamente. Las estructuras de control repetitivas son aquellas en las que una sentencia o grupos de sentencias se repiten muchas veces. Una estructura de control que permite la repetición de una serie determinada de sentencias se denomina bucle (lazo o ciclo). El cuerpo del bucle c ontiene las sentencias que se repiten. La acción o acciones que se repiten en un bucle se denomina el cuerpo del bucle, y cada repetición del cuerpo del bucle se denomina iteración. Sentencia Mientras..hacer (while) La estructura repetitiva mientras es aquella en la que el número de iteraciones no se conoce por anticipado y el cuerpo del bucle se repite mientras se cumple una determinada condición. Por esta razón a estos bucles se les denomina bucles co ndicionales. La sintaxis es la siguiente: Cuando la sentencia mientras se ejecuta, el primer p aso es la evaluación de la expresión lóg

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 una clave primaria en una tabl