2014-11-05 11 views
24

Ich habe ein C# -Programm, das mir ein JSON-Objekt sendet. Ich mache eine Java Play-Website, um die POST-Daten zu erfassen. Ich bekomme die richtigen Daten als Objekt, aber müssen es in eine Map konvertieren.Convert JsonNode Objekt in Map

Ich com.fasterxml.jackson.databind.JsonNode

Hier verwenden ist, wo ich das JsonNode Objekt korrekt erfassen:

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

Nun, da ich das Objekt habe ich brauche, um herauszufinden, wie es in ein Map so zu konvertieren, dass Ich kann so etwas Magie drauf haben. Später möchte ich die Map zurück in ein JSON-Objekt konvertieren, um in der Antwort gesendet zu werden.

Ich habe in der Dokumentation gesucht, aber die verfügbaren Methoden schreien nicht als die Lösung.

Hier ist die Dokumentation I für dieses spezielle JsonNode Objekt referenziert habe: http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html

Antwort

62

Hier hat versucht, die Antwort selbst zu finden. Dug ein wenig tiefer und fand ein wenig die Antwort here

Grundsätzlich benutzen Sie einfach den ObjectMapper den Wert für Sie zu konvertieren:

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

Es ist Map durch die Art und Weise. – Espinosa

+3

Korrektur, es ist übrigens Karte . Der Wert kann String, Integer, .. – Espinosa

+0

In der Tat, aktualisiert meine Antwort. Vielen Dank. – mhogerheijde