web-dev-qa-db-fra.com

Convertir un objet JsonNode en carte

J'ai un programme C # qui m'envoie un objet json. Je crée un site Web Java Play pour capturer les données POST. Je récupère les données correctes sous la forme d'un objet JsonNode mais il faut les convertir.) dans un Map.

J'utilise com.fasterxml.jackson.databind.JsonNode

Voici où je capture correctement l'objet JsonNode:

public static Result index() {
    JsonNode json = request().body().asJson();
}

Maintenant que j’ai l’objet, j’ai besoin de savoir comment le convertir en Map afin que je puisse utiliser un peu de magie. Plus tard, je voudrai reconvertir le Map en un objet json à envoyer dans la réponse.

J'ai consulté la documentation, mais les méthodes disponibles ne sont pas une solution.

Voici la documentation à laquelle je faisais référence pour cet objet JsonNode: http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/ databind/JsonNode.html

39
visc

Je suis arrivé à essayer de trouver la réponse moi-même. Creu un peu plus profond et trouvé un peu la réponse ici

En gros, utilisez simplement ObjectMapper pour convertir la valeur pour vous:

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> result = mapper.convertValue(jsonNode, Map.class);

(notez qu'il s'agit d'une affectation non contrôlée)

99
mhogerheijde