Cómo convertir JSON en un map en Java
-
Librería
Jackson
para convertirJSON
enMap
en Java -
Librería
GSON
para convertirJSON
enMap
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java JSON
- Convertir datos JSON a cadenas en Java
- Deserializar JSON en Java
- Impresión bonita de datos JSON en Java
- Serializar objeto a JSON en Java
- Manejo de arrays JSON en Java
- Convierta XML a JSON en Java