2014-11-05 18 views
24

Mam program C#, który wysyła mi obiekt Json. Tworzę witrynę Java Play, aby przechwycić dane POST. Dostaję poprawne dane jako obiekt JsonNode, ale trzeba go przekonwertować na Map.Konwertuj obiekt JsonNode na mapę

Używam com.fasterxml.jackson.databind.JsonNode

Oto gdzie ja właściwie uchwycić obiekt JsonNode:

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

Teraz mam obiekt muszę dowiedzieć się, jak przekształcić go w taki sposób, że Map Mogę więc trochę magii na ten temat. Później chciałbym przekonwertować obiekt Map z powrotem na obiekt json, który zostanie wysłany w odpowiedzi.

Szukałem w dokumentacji, ale dostępne metody nie krzyczą jako rozwiązanie.

Oto dokumentacja Byłem odniesienie do tej konkretnej JsonNode obiektu: http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html

Odpowiedz

62

Got tutaj próbuje znaleźć odpowiedź samodzielnie. Kopany głębiej i znaleźć nieco odpowiedź here

Zasadniczo wystarczy użyć ObjectMapper przekonwertować wartość dla Ciebie:

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

Jest Map na drodze. – Espinosa

+3

Korekta, to jest mapa przy okazji. Wartością może być String, Integer, .. – Espinosa

+0

Rzeczywiście, zaktualizowałem moją odpowiedź. Dzięki. – mhogerheijde

Powiązane problemy