Cómo convertir JSON en un map en Java

Rupam Yadav 12 octubre 2023
  1. Librería Jackson para convertir JSON en Map en Java
  2. Librería GSON para convertir JSON en Map en Java
Cómo convertir JSON en un map en Java

Presentaremos cómo convertir un JSON existente en un Mapa en Java. JSON se utiliza a menudo para estructurar los datos, pero a veces tenemos que conseguir los valores de JSON en algún otro tipo de datos y luego trabajar en él.

Se crean varias bibliotecas para trabajar con JSON en Java. Veremos las dos bibliotecas de análisis JSON más utilizadas que nos permiten hacer muchas operaciones JSON.

A continuación se muestra el JSON en el que vamos a trabajar en este tutorial para una mejor comprensión.

{
  "login" :
  {
    "userName" : "John Doe",
    "email" : "johndoe@john.com"
  }
}

Librería Jackson para convertir JSON en Map en Java

Tenemos que incluir la siguiente dependencia en nuestro proyecto para que los métodos y clases de la biblioteca Jackson puedan ser heredados.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.2</version>
    <scope>compile</scope>
</dependency>

Después de añadir la dependencia, primero obtendremos el archivo JSON local usando el método FileInputStream(),

Necesitamos llamar a ObjectMapper().readValue() de la biblioteca Jackson para convertir nuestro JSON a Map. La función readValue(JSON, ClassType) toma dos argumentos, el JSON y el ClassType que queremos que el JSON sea formateado. Como queremos convertir JSON en formato Map, usaremos Hashmap.class.

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;

public class Main {
  public static void main(String[] args) throws IOException {
    InputStream getLocalJsonFile = new FileInputStream("/sample.json");

    HashMap<String, Object> jsonMap = new ObjectMapper().readValue(getLocalJsonFile, HashMap.class);
    System.out.println(jsonMap);
  }
}

Resultado:

{login={userName=John Doe, email=johndoe@john.com}}

Librería GSON para convertir JSON en Map en Java

Primero, debemos incluir la dependencia de nuestro proyecto para incluir todos los métodos y clases de GSON en nuestra aplicación.

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

GSON es una biblioteca JSON ampliamente utilizada que analizaremos y convertiremos en Java Map.

Gson().fromJson(json, type) espera dos argumentos, uno de los cuales es el archivo JSON que podemos obtener usando new JsonReader(new FileReader(jsonFilePath)) y el segundo argumento es el tipo al que queremos que se convierta el JSON.

Mira el siguiente ejemplo.

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Map;

public class Main {
  public static void main(String[] args) throws IOException {
    JsonReader getLocalJsonFile = new JsonReader(new FileReader("/sample.json"));

    Type mapTokenType = new TypeToken<Map<String, Map>>() {}.getType();

    Map<String, String[]> jsonMap = new Gson().fromJson(getLocalJsonFile, mapTokenType);

    System.out.println(jsonMap);
  }
}

Resultado:

{login={userName=John Doe, email=johndoe@john.com}}
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java JSON

Artículo relacionado - Java Map