Main Tutorials

Convert Java Objects to JSON with Jackson

This article will show you how to convert Java objects to JSON with Jackson.

Table of contents:

P.S Tested with Jackson 2.17.0

1. Setup Jackson

Puts jackson-databind at pom.xml.

pom.xml

  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.17.0</version>
  </dependency>

2. Jackson quick examples

In quick, we use Jackson’s ObjectMapper object to convert Java object to / from JSON.

writeValue() – Convert Java object to JSON string.


    ObjectMapper mapper = new ObjectMapper();

    // convert Java object to JSON file
    mapper.writeValue(new File("person.json"), object);

    // convert Java object to JSON string
    String jsonString = mapper.writeValueAsString(object);

readValue() – Convert JSON string to Java object.


    ObjectMapper mapper = new ObjectMapper();

    // JSON file to Java object
    Person obj = mapper.readValue(new File("person.json"), Person.class);

    // JSON URL to Java object
    Person obj = mapper.readValue(new URL("http://some-domains/api/person.json"), Person.class);

    // JSON string to Java Object
    String json = "{\"name\": \"mkyong\", \"age\": 20}";
    Person obj = mapper.readValue(json, Person.class);

3. Convert Java Object to JSON using Jackson

This example uses Jackson to convert a Java object Person to a JSON string.

Person.java

package com.mkyong.json.model;

public class Person {

    private String name;
    private int age;

    //getters, setters and constructors
}
ConvertObjectToJsonExample.java

package com.mkyong.json.jackson.tips;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mkyong.json.model.Person;

public class ConvertObjectToJsonExample {

    public static void main(String[] args) {

        Person person = new Person("mkyong", 42);

        ObjectMapper om = new ObjectMapper();

        try {

            // covert Java object to JSON strings
            String json = om.writeValueAsString(person);

            // output: {"name":"mkyong","age":42}
            System.out.println(json);

        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }


    }
}

4. Convert JSON to Java object using Jackson

A simple JSON string.


  {
    "name": "mkyong",
    "age": 20
  }
ConvertObjectToJsonExample2.java

package com.mkyong.json.jackson.tips;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mkyong.json.model.Person;

public class ConvertObjectToJsonExample2 {

    public static void main(String[] args) {

        String json = "{\"name\": \"mkyong\", \"age\": 20}";

        ObjectMapper om = new ObjectMapper();

        try {

            // covert JSON to Java object
            Person person = om.readValue(json, Person.class);

            // output: Person{name='mkyong', age=20}
            System.out.println(person);

        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }


    }
}

output


Person{name='mkyong', age=20}

5. Write Java object to JSON file

This example uses Jackson to convert a Java object Person to a JSON string and write it in a file named person.json.

ConvertObjectToJsonExample3

package com.mkyong.json.jackson.tips;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.mkyong.json.model.Person;

import java.io.File;
import java.io.IOException;

public class ConvertObjectToJsonExample3 {

    public static void main(String[] args) {

        Person person = new Person("mkyong", 42);

        ObjectMapper om = new ObjectMapper();

        try {

            // convert Java object to JSON strings and save it to file `person.json`
            om.writeValue(new File("person.json"), person);

        } catch (IOException e) {
            throw new RuntimeException(e);
        }


    }
}

Output

person.json

{"name":"mkyong","age":42}

6. Read from JSON file to Java object

This example uses Jackson to read JSON from a file person.json and convert it to the Java object Person.

ConvertObjectToJsonExample4.java

package com.mkyong.json.jackson.tips;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.mkyong.json.model.Person;

import java.io.File;
import java.io.IOException;

public class ConvertObjectToJsonExample4 {

    public static void main(String[] args) {

        ObjectMapper om = new ObjectMapper();

        try {

            // read JSON from a file and convert it to Java object
            Person person = om.readValue(new File("person.json"), Person.class);

            System.out.println(person);

        } catch (IOException e) {
            throw new RuntimeException(e);
        }


    }
}

7. FAQs

Q: What is the difference between Jackson 1 and Jackson 2?
A: Most of the APIs still maintain the same method name and signature; the packaging is different.

  • Jackson 1.x – org.codehaus.jackson.map
  • Jackson 2.x – com.fasterxml.jackson.databind

Q: How about using Jackson to parse the JSON array?
A: Refer to this parse JSON Array with Jackson

8. Download Source Code

$ git clone https://github.com/mkyong/java-json

$ cd jackson

9. References

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments