Cómo convertir Hashmap en un objeto JSON en Java
-
new JSONObject(hashmap)
para convertir Hashmap en un objeto JSON - Biblioteca Jackson para convertir Hashmap en un objeto JSON
-
Librería
GSON
para convertir el Hashmap en un objeto JSON
Este artículo muestra las formas de convertir un hashmap en un objeto JSON en Java. Veremos los ejemplos en detalle acerca de la creación de un hashmap y luego convertirlo en un objeto JSON.
Tanto el hashmap como el JSON son muy utilizados por los desarrolladores ya que nos ayudan a crear una estructura simple que puede ser utilizada tanto para almacenar como para transferir datos fácilmente.
new JSONObject(hashmap)
para convertir Hashmap en un objeto JSON
La forma más tradicional de convertir un hashmap en un objeto JSON es llamando a JSONObject()
y luego pasando el hashmap.
Echemos un vistazo a un ejemplo que crea un hashmap y luego lo imprime en 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"}
Una cosa que hay que notar aquí es que Map<String, Object>
toma una cadena, que es la key
, y el Objeto, que es el value
. Significa que podemos pasar cualquier objeto válido como un valor en el mapa y luego convertirlo en un objeto JSON.
Abajo hay un ejemplo que toma una cadena y una Arraylist
como 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 convertir Hashmap en un objeto JSON
Hay bibliotecas en Java que pueden ayudarnos a convertir nuestro hashmap en un objeto JSON con mucha flexibilidad.
Jackson es una de esas librerías que toma un map
de Java y luego convierte el mapa en formato JSON.
No debemos olvidarnos de manejar la JsonProcessingException
como ObjetoMapper().writeValueAsString(map)
puede lanzar una excepción cuando encuentra un formato de datos incompatible.
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"}
Librería GSON
para convertir el Hashmap en un objeto JSON
La biblioteca Gson es una de las más usadas para convertir un mapa de hachís en un objeto JSON. Proporciona métodos fáciles para trabajar en nuestro hashmap y JSON.
La clase Gson
tiene un método toJsonTree
, que toma nuestro mapa y lo convierte en un árbol JSON. Pero como necesitamos un objeto JSON, podemos usar toJSONObject()
para hacer que el árbol JSON sea un 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 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