Bibliotecas JSON de Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/serialization("Serialization") java/FileandIOManagementGroup -.-> java/io("IO") subgraph Lab Skills java/classes_objects -.-> lab-117768{{"Bibliotecas JSON de Java"}} java/serialization -.-> lab-117768{{"Bibliotecas JSON de Java"}} java/io -.-> lab-117768{{"Bibliotecas JSON de Java"}} end

Configuración del 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.