How to Convert JSON String to Map in Java using Jackson

Published Nov 26, 2021  ∙  Updated May 8, 2022

Suppose we’re working with a JSON string that we want to deserialize into a map.

String json = "{\"id\":1,\"breed\":\"corgi\"}";

We want to convert this JSON string into a map with a String key and generic Object value (Map<String, Object>).

We can use the jackson-core and jackson-mapper libraries to achieve this.

Using Jackson to deserialize JSON to map

Let’s see how we can use ObjectMapper to read the JSON string.

ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> map = mapper.readValue(json, Map.class);

We could also specify a different class for the key and value (instead of String.class and Object.class). We use Object for the value in this scenario since we have both Integer and String types.

Using Jackson to serialize map into JSON

Similarly, we can use ObjectMapper to write a map into a JSON string.

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map)