Convert JsonNode object to Map
I have a C# program that sends me a json object.
I'm making a Java Play website to capture the POST data.
I get the correct data as a JsonNode
object but need to convert it into a Map
.
I'm using com.fasterxml.jackson.databind.JsonNode
Here is where I correctly capture the JsonNode object:
public static Result index() {
JsonNode json = request().body().asJson();
}
Now that I have the object I need to figure out how to convert it into a Map
so that I can so some magic on it. Later I'll want to convert the Map
back into a json object to be sent in the response.
I've been looking in the documentation, but the methods available don't scream as the solution.
Here is the documentation I've been referencing for this particular JsonNode
object:
http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html
Solution 1:
Got here trying to find the answer myself. Dug a little deeper and found a bit the answer here
Basically just use the ObjectMapper
to convert the value for you:
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> result = mapper.convertValue(jsonNode, new TypeReference<Map<String, Object>>(){});