Deserializar JSON en Java

Sheeraz Gul 12 octubre 2023
  1. Deserializar JSON en Java
  2. Deserializar JSON usando la API JSON-Java
  3. Deserializar JSON usando la API Jackson
Deserializar JSON en Java

Este tutorial demuestra cómo deserializar JSON en Java.

Deserializar JSON en Java

Se proporcionan diferentes bibliotecas que se utilizan para operaciones JSON. Estas bibliotecas también pueden serializar y deserializar objetos JSON en Java.

Deserializar JSON usando la API JSON-Java

Hay una biblioteca JSON-Java para manejar la serialización y deserialización de objetos JSON en Java. Esta biblioteca analiza objetos o documentos JSON en objetos Java o genera documentos de objetos JSON a partir de clases Java.

Esta biblioteca se puede agregar usando Gradle en Java. La dependencia de Gradle para JSON-Java es:

implementation 'org.json:json:20210307'

El JSON-Java viene con diferentes características y es mejor que muchas otras bibliotecas similares. Las características principales son:

  1. Compatibilidad con versiones anteriores
  2. No hay dependencias externas.
  3. Tiene una ejecución rápida y un bajo consumo de memoria.
  4. Resultados consistentes y confiables
  5. Proporciona adherencia a la especificación JSON.
import org.json.JSONObject;

public class Example {
  public static void main(String[] args) {
    String JSON_Object = "" "
    {
      "name" : "Sheeraz Gul",
               "occupation" : "Software Engineer",
                              "salary" : "6000",
                                         "height" : "186.6",
                                                    "married" : "false"
    }
    "" ";

        var User_Info = new JSONObject(JSON_Object);

    System.out.println(User_Info.get("name"));
    System.out.println(User_Info.get("occupation"));
    System.out.println(User_Info.get("salary"));
    System.out.println(User_Info.get("height"));
    System.out.println(User_Info.get("married"));
  }
}

El código anterior deserializará el objeto JSON en un objeto Java. Ver salida:

Sheeraz Gul
Software Engineer
6000
186.6
false

Deserializar JSON usando la API Jackson

Jackson es una biblioteca de código abierto para operaciones JSON en Java. La biblioteca puede serializar y deserializar objetos JSON en Java.

La biblioteca tiene dos métodos principales para la serialización y deserialización.

  1. writeValue(...): se utiliza para convertir el objeto Java en un objeto JSON. (Publicación por entregas)
  2. readValue(...): se utiliza para convertir un objeto JSON en un objeto Java. (Deserialización)

Jackson se puede usar agregándolo al proyecto maven. La dependencia para la API Jackson es:

<dependency>
		<groupId>org.codehaus.jackson</groupId>
		<artifactId>jackson-mapper-asl</artifactId>
		<version>1.9.13</version>
	</dependency>

Esta dependencia es para Jackson 1.x; también hay una versión más nueva, Jackson 2.x. Probemos un ejemplo para deserializar un objeto JSON a un objeto Java.

package delftstack;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class Example {
  public static void main(String[] args) {
    ObjectMapper Object_Mapper = new ObjectMapper();

    try {
      // JSON string from file to java Object
      User User_File = Object_Mapper.readValue(new File("G:\\delftstack.json"), User.class);
      System.out.println(User_File);

      // JSON string to java Object
      String jsonInString = "{\"name\":Sheeraz,\"salary\":\"6000\", \"company\":\"Delftstack\"}";
      User User_String = Object_Mapper.readValue(jsonInString, User.class);
      System.out.println(User_String);

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

El código anterior deserializará un objeto JSON a un objeto Java desde un archivo y una cadena. Tanto el archivo como la cadena contienen el mismo objeto JSON.

Ver salida:

User [name=Sheeraz, Salary=6000, Company=Delftstack]

User [name=Sheeraz, Salary=6000, Company=Delftstack]
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - Java JSON