web-dev-qa-db-fra.com

Comment convertir HashMap en JsonNode avec Jackson?

J'ai un objet HashMap que je veux convertir en arbre JsonNode en utilisant com.fasterxml.jackson.databind.ObjectMapper. Quelle est la meilleure façon de procéder?

J'ai trouvé le code suivant, mais comme je ne connais pas bien l'API Jackson, je me demande s'il existe de meilleures façons.

mapper.reader().readTree(mapper.writeValueAsString(hashmap))
22
cacert

Ce qui suit fera l'affaire:

JsonNode jsonNode = mapper.convertValue(map, JsonNode.class);

Ou utilisez la solution plus élégante indiquée dans les commentaires :

JsonNode jsonNode = mapper.valueToTree(map);

Si vous devez écrire votre jsonNode sous forme de chaîne, utilisez:

String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);
44
cassiomolin