📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
In this quick tutorial, I show you how to use Jackson library to pretty print JSON Object to console or external file.
Dependencies
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.
I found two ways we can configure and enable pretty print JSON with ObjectMapper class.- Using ObjectMapper.writerWithDefaultPrettyPrinter() Method
- Using ObjectMapper.enable(SerializationFeature.INDENT_OUTPUT) Method
1. Using ObjectMapper.writerWithDefaultPrettyPrinter() Method
// Create ObjectMapper object. ObjectMapper mapper = new ObjectMapper(); User bean = new User(1, "Ramesh", "Fadatare", "Ramesh Fadatare"); String result = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bean);
Output:
{ "id" : 1, "firstName" : "Ramesh", "lastName" : "Fadatare", "fullName" : "Ramesh Fadatare" }
2. Using ObjectMapper.enable(SerializationFeature.INDENT_OUTPUT) Method
// Create ObjectMapper object. ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT); User bean = new User(1, "Ramesh", "Fadatare", "Ramesh Fadatare"); String result = mapper.writeValueAsString(bean); System.out.println(result);
Output:
{ "id" : 1, "firstName" : "Ramesh", "lastName" : "Fadatare", "fullName" : "Ramesh Fadatare" }
Complete Example
Let's develop a complete example. Let's first create a User class:
User.java
package net.javaguides.jackson.annotations; public class User { public int id; private String firstName; private String lastName; private String fullName; public User(int id, String firstName, String lastName, String fullName) { super(); this.id = id; this.firstName = firstName; this.lastName = lastName; this.fullName = fullName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } }
Using ObjectMapper.writerWithDefaultPrettyPrinter() Method
package net.javaguides.jackson.annotations; import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; public class Demo { public static void main(String[] args) throws IOException { // Create ObjectMapper object. ObjectMapper mapper = new ObjectMapper(); User bean = new User(1, "Ramesh", "Fadatare", "Ramesh Fadatare"); String result = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bean); System.out.println(result); } }
Output:
{ "id" : 1, "firstName" : "Ramesh", "lastName" : "Fadatare", "fullName" : "Ramesh Fadatare" }
Using ObjectMapper.enable(SerializationFeature.INDENT_OUTPUT) Method
package net.javaguides.jackson.annotations; import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; public class JsonPropertyAnnotationTest { public static void main(String[] args) throws IOException { // Create ObjectMapper object. ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT); User bean = new User(1, "Ramesh", "Fadatare", "Ramesh Fadatare"); String result = mapper.writeValueAsString(bean); System.out.println(result); } }
Output:
{ "id" : 1, "firstName" : "Ramesh", "lastName" : "Fadatare", "fullName" : "Ramesh Fadatare" }
Related Articles
- Change Field Name in JSON using Jackson (popular)
GitHub Repository
The source code of this article available on my GitHub repository at https://github.com/RameshMF/jackson-json-tutorial
Comments
Post a Comment
Leave Comment