Como converter o Hashmap para Objeto JSON em Java

Rupam Yadav 12 outubro 2023
  1. new JSONObject(hashmap) para converter o Hashmap em objeto JSON
  2. Biblioteca Jackson para converter o Hashmap em um objeto JSON
  3. Biblioteca GSON para converter o Hashmap em objeto JSON
Como converter o Hashmap para Objeto JSON em Java

Este artigo mostra as maneiras de converter um hashmap em um objeto JSON em Java. Veremos os exemplos em detalhes sobre como criar um hashmap e depois convertê-lo em um objeto JSON.

Hashmap e JSON são ambos muito usados pelos desenvolvedores, pois nos ajudam a criar uma estrutura simples que pode ser usada para armazenar e transferir dados facilmente.

new JSONObject(hashmap) para converter o Hashmap em objeto JSON

A maneira mais tradicional de converter um hashmap em um objeto JSON é chamando JSONObject() e depois passar o hashmap.

Vamos dar uma olhada em um exemplo que cria um hashmap e depois o imprime no formato JSON.

import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONObject;

public class Main {
  public static void main(String[] args) {
    Map<String, Object> map = new HashMap();

    map.put("key1", "value1");
    map.put("key2", "value2");

    JSONObject json = new JSONObject(map);
    System.out.printf("JSON: %s", json);
  }

Resultado:

JSON: {"key1":"value1","key2":"value2"}

Uma coisa a se notar aqui é que Map<String, Object> toma uma string, que é a key, e o Object, que é o value. Isso significa que podemos passar qualquer objeto válido como um valor para o mapa e depois convertê-lo como um objeto JSON.

Abaixo está um exemplo que toma uma string e um Arraylist como o valor.

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONObject;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> stringArrayList = new ArrayList<>();
    stringArrayList.add("firstString");
    stringArrayList.add("secondString");
    stringArrayList.add("thirdString");

    Map<String, Object> map = new HashMap();
    map.put("key1", "value1");
    map.put("key2", "value2");
    map.put("stringList", stringArrayList);

    JSONObject json = new JSONObject(map);
    System.out.printf("JSON: %s", json);
  }

Resultado:

JSON: {"key1":"value1","key2":"value2","stringList":["firstString","secondString","thirdString"]}

Biblioteca Jackson para converter o Hashmap em um objeto JSON

Existem bibliotecas em Java que podem nos ajudar a converter nosso hashmap em um objeto JSON com muita flexibilidade.

Jackson é uma dessas bibliotecas que pega um mapa em Java e depois converte o mapa em formato JSON.

Não devemos esquecer de lidar com o JsonProcessingException como ObjectMapper().writeValueAsString(map) pode lançar uma exceção quando encontrar um formato de dados incompatível.

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;

public class Main {
  public static void main(String[] args) throws JsonProcessingException {
    Map<String, Object> map = new HashMap();
    map.put("key1", "value1");
    map.put("key2", "value2");

    String json = new ObjectMapper().writeValueAsString(map);
    System.out.printf("JSON: %s", json);
  }

Resultado:

JSON: {"key1":"value1","key2":"value2"}

Biblioteca GSON para converter o Hashmap em objeto JSON

A biblioteca Gson é uma das bibliotecas mais utilizadas para converter um hashmap em um objeto JSON. Ela fornece métodos fáceis de trabalhar em nosso hashmap e JSON.

A classe Gson tem um método toJsonTree, que pega nosso mapa e o converte em uma árvore JSON. Mas como precisamos de um objeto JSON, podemos utilizar toJSONObject() para tornar a árvore JSON um objeto JSON.

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import java.util.HashMap;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    Map<String, Object> map = new HashMap();
    map.put("key1", "value1");
    map.put("key2", "value2");

    Gson gson = new Gson();
    JsonObject json = gson.toJsonTree(map).getAsJsonObject();

    System.out.printf("JSON: %s", json);
  }

Resultado:

JSON: {"key1":"value1","key2":"value2"}
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 Hashmap