This article will show you how to convert Java objects to JSON with Jackson.
Table of contents:
- 1. Setup Jackson
- 2. Jackson quick examples
- 3. Convert Java Object to JSON using Jackson
- 4. Convert JSON to Java object using Jackson
- 5. Write Java object to JSON file
- 6. Read from JSON file to Java object
- 7. FAQs
- 8. Download Source Code
- 9. References
P.S Tested with Jackson 2.17.0
1. Setup Jackson
Puts jackson-databind
at 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.
package com.mkyong.json.model;
public class Person {
private String name;
private int age;
//getters, setters and constructors
}
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
}
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
.
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
{"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
.
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
- Jackson Github
- Jackson data-binding
- How to parse JSON Array with Jackson
- How to parse JSON string with Jackson
- How to ignore null fields with Jackson
- How to parse JSON with Gson
The post Convert Java Objects to JSON with Jackson appeared first on Mkyong.com.