Bibliotecas JSON de Java

JavaBeginner
Practicar Ahora

Introducción

JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos. Es fácil de leer y escribir y se utiliza ampliamente para el intercambio de datos entre cliente-servidor. En este laboratorio, aprenderá a usar las populares bibliotecas Java JSON, como Jackson, Gson, Genson y Json-io, para serializar y deserializar objetos al formato JSON.

Configurando el proyecto

  1. Abra la terminal y navegue hasta el directorio del proyecto ejecutando cd ~/proyecto.
  2. Cree un nuevo archivo Java para este laboratorio ejecutando el comando touch JsonLab.java en la terminal y pegue el siguiente código:
import java.io.IOException;

public class JsonLab {
    public static void main(String[] args) throws IOException {
        ClassA classAObj = new ClassA("Demo", 20.0); // crear objeto para serializar y deserializar más adelante
    }

    // agregue la clase ClassA aquí
}

Usando la biblioteca Jackson

  1. Para trabajar con Jackson, necesitamos agregar la dependencia de Maven de Jackson en el archivo pom.xml:
<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
</dependencies>
  1. A continuación, necesitamos serializar y deserializar objetos a una cadena JSON usando la clase ObjectMapper de la siguiente manera:
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    ObjectMapper objMapper = new ObjectMapper();
    ClassA classAObj = new ClassA("Demo", 20.0);

    // Serialización
    String jsonString = objMapper.writeValueAsString(classAObj);
    System.out.println("Cadena serializada: " + jsonString);

    // Deserialización
    ClassA objFromStr = objMapper.readValue(jsonString, ClassA.class);
    System.out.print("Objeto deserializado: " + objFromStr.getField1() + " " + objFromStr.getField2());
  }
}

Usando la biblioteca Gson

  1. Para trabajar con Gson, necesitamos agregar la dependencia de Maven de Gson en el archivo pom.xml:
<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
    </dependency>
</dependencies>
  1. A continuación, necesitamos serializar y deserializar objetos usando el objeto Gson de la siguiente manera:
import com.google.gson.Gson;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    Gson gson = new Gson();
    ClassA obj = new ClassA("Demo", 20.0);

    // Serialización
    String jsonStrFromObj = gson.toJson(obj);
    System.out.println("Cadena serializada: " + jsonStrFromObj);

    // Deserialización
    ClassA objFromJsonStr = gson.fromJson(jsonStrFromObj, ClassA.class);
    System.out.print("Objeto deserializado: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Usando la biblioteca Genson

  1. Para trabajar con Genson, necesitamos agregar la dependencia de Maven de Genson en el archivo pom.xml:
<dependencies>
    <dependency>
        <groupId>com.owlike</groupId>
        <artifactId>genson</artifactId>
        <version>${genson.version}</version>
    </dependency>
</dependencies>
  1. A continuación, necesitamos serializar y deserializar objetos usando el objeto Genson de la siguiente manera:
import com.owlike.genson.Genson;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    Genson genson = new Genson();
    ClassA obj = new ClassA("Demo", 20.0);

    // Serialización
    String jsonStrFromObj = genson.serialize(obj);
    System.out.println("Cadena serializada: " + jsonStrFromObj);

    // Deserialización
    ClassA objFromJsonStr = genson.deserialize(jsonStrFromObj, ClassA.class);
    System.out.print("Objeto deserializado: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Usando la biblioteca Json-io

  1. Para trabajar con la biblioteca Json-io, necesitamos agregar la dependencia de Maven de Json-io en el archivo pom.xml:
<dependencies>
  <dependency>
    <groupId>com.cedarsoftware</groupId>
    <artifactId>json-io</artifactId>
    <version>${json-io.version}</version>
  </dependency>
</dependencies>
  1. A continuación, necesitamos serializar y deserializar objetos usando JsonWriter y JsonReader de la siguiente manera:
import com.cedarsoftware.util.io.JsonReader;
import com.cedarsoftware.util.io.JsonWriter;

public class JsonLab {
  public static void main(String[] args) throws IOException {
    ClassA obj = new ClassA("Demo", 20.0);

    // Serialización
    String jsonStrFromObj = JsonWriter.objectToJson(obj);
    System.out.println("Cadena serializada: " + jsonStrFromObj);

    // Deserialización
    ClassA objFromJsonStr = (ClassA) JsonReader.jsonToJava(jsonStrFromObj);
    System.out.print("Objeto deserializado: " + objFromJsonStr.getField1() + " " + objFromJsonStr.getField2());
  }
}

Resumen

En este laboratorio, aprenderá a usar varias bibliotecas JSON de Java para convertir objetos al formato JSON y viceversa. Aprendimos cómo usar las bibliotecas Jackson, Gson, Genson y Json-io para serializar y deserializar objetos a JSON.