java - example - ¿Cómo convertir HashMap a JsonNode con Jackson?
jsonnode to arraynode jackson (2)
Tengo un objeto HashMap
que quiero convertir al árbol com.fasterxml.jackson.databind.ObjectMapper
usando com.fasterxml.jackson.databind.ObjectMapper
. ¿Cuál es la mejor manera de hacerlo?
Encontré el siguiente código, pero como no conozco bien la API de Jackson, me pregunto si hay formas mejores.
mapper.reader().readTree(mapper.writeValueAsString(hashmap))
Lo siguiente hará el truco:
JsonNode jsonNode = mapper.convertValue(map, JsonNode.class);
O utilice la solución más elegante señalada en los comments :
JsonNode jsonNode = mapper.valueToTree(map);
Si necesita escribir su jsonNode
como una cadena, use:
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);
Primero transforma tu mapa en un JsonNode:
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNodeMap = mapper.convertValue(myMap, JsonNode.class);
Luego agregue este nodo a su ObjectNode con el método set:
myObjectNode.set("myMapName", jsonNodeMap);
Para convertir de JsonNode a ObjectNode use:
ObjectNode myObjectNode = (ObjectNode) myJsonNode;