Como converter JSON para mapa em Java

Rupam Yadav 12 outubro 2023
  1. Biblioteca para converter Jackson em JSON em Map em Java
  2. GSON Biblioteca para converter JSON para Map em Java
Como converter JSON para mapa em Java

Introduziremos como converter um JSON existente para um mapa em Java. O JSON é freqüentemente usado para estruturar os dados, mas às vezes temos que obter os valores JSON em algum outro tipo de dados e depois trabalhar com eles.

Várias bibliotecas são criadas para trabalhar com o JSON em Java. Veremos as duas bibliotecas de análise JSON mais utilizadas que nos permitem fazer muitas operações JSON.

Abaixo está o JSON no qual vamos trabalhar neste tutorial para uma melhor compreensão.

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

Biblioteca para converter Jackson em JSON em Map em Java

Temos que incluir a dependência abaixo em nosso projeto para que os métodos e classes da biblioteca Jackson possam ser herdados.

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

Depois de adicionar a dependência, primeiro vamos obter o arquivo JSON local utilizando o método FileInputStream(),

Precisamos chamar ObjectMapper().readValue() da biblioteca Jackson para converter nosso JSON em Map. A função readValue(JSON, ClassType) toma dois argumentos, o JSON e o ClassType que queremos que o JSON seja formatado. Como queremos converter o JSON para o formato Map, utilizaremos o 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}}

GSON Biblioteca para converter JSON para Map em Java

Em primeiro lugar, devemos incluir a dependência de nosso projeto para incluir todos os métodos e classes da GSON em nossa aplicação.

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

A GSON é uma biblioteca JSON amplamente utilizada, que analisaremos e converteremos em Java Map.

Gson().fromJson(json, type) espera dois argumentos, um dos quais é o arquivo JSON que podemos obter utilizando new JsonReader(new FileReader(jsonFilePath)) e o segundo argumento é o tipo para o qual queremos que o JSON seja convertido.

Confira o exemplo abaixo.

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

Artigo relacionado - Java JSON

Artigo relacionado - Java Map