Jackson – Convert JSON string to Map

In this quick article, I will show how to convert a JSON string to Java Map using the Jackson library.

In Jackson, we can use a mapper.readValue(json, Map.class) to convert a JSON string to a Map

Check out complete Jackson tutorial at Java Jackson JSON Tutorial with Examples.

We are using Jackson library to convert JSON string to Map so let's add below Jackson dependency to your project's classpath or pom.xml.

Maven pom dependency

Let’s first add the following dependencies to the pom.xml:
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
This dependency will also transitively add the following libraries to the classpath:
  • jackson-annotations-2.9.8.jar
  • jackson-core-2.9.8.jar
  • jackson-databind-2.9.8.jar
Always use the latest versions on the Maven central repository for Jackson databind.

Example -  Convert JSON string to Map

The following example demonstrates how to convert the JSON string to Map:

JacksonJsonToMap.java

package net.javaguides.jackson;

import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class JacksonJsonToMap {
    public static void main(String[] args) throws IOException {

        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);

        String json = "{" +
            "  \"THU\" : 5," +
            "  \"TUE\" : 3," +
            "  \"WED\" : 4," +
            "  \"SAT\" : 7," +
            "  \"FRI\" : 6," +
            "  \"MON\" : 2," +
            "  \"SUN\" : 1" +
            "}";

        @SuppressWarnings("unchecked")
        Map < String, Integer > days = mapper.readValue(json, Map.class);

        for (Entry < String, Integer > day: days.entrySet()) {
            System.out.println(day.getKey() + "=" + day.getValue());
        }
    }
}

Output:

THU=5
TUE=3
WED=4
SAT=7
FRI=6
MON=2
SUN=1

Convert Map to JSON string


Check out complete Jackson tutorial at Java Jackson JSON Tutorial with Examples.

Comments