In this short article, you'll learn how to use Jackson to enable pretty print JSON output.
By default, Jackson outputs the final JSON in the compact format:
try {
// create user object
User user = new User("John Doe", "john.doe@example.com",
new String[]{"Member", "Admin"}, true);
// convert user object to JSON
String json = new ObjectMapper().writeValueAsString(user);
// print JSON string
System.out.println(json);
} catch (Exception ex) {
ex.printStackTrace();
}
Here is what the generated JSON looks like:
{"name":"John Doe","email":"john.doe@example.com","roles":["Member","Admin"],"admin":true}
To enable the pretty print JSON output while serializing a Java Object, you can use the writerWithDefaultPrettyPrinter()
method of ObjectMapper
:
try {
// create user object
User user = new User("John Doe", "john.doe@example.com",
new String[]{"Member", "Admin"}, true);
// create object mapper instance
ObjectMapper mapper = new ObjectMapper();
// convert user object to pretty print JSON
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user);
// print JSON string
System.out.println(json);
} catch (Exception ex) {
ex.printStackTrace();
}
Now here is what the final pretty print JSON looks like:
{
"name" : "John Doe",
"email" : "john.doe@example.com",
"roles" : [ "Member", "Admin" ],
"admin" : true
}
You can also enable the pretty print JSON output globally by using the DefaultPrettyPrinter
class, as shown below:
try {
// create user object
User user = new User("John Doe", "john.doe@example.com",
new String[]{"Member", "Admin"}, true);
// create object mapper instance
ObjectMapper mapper = new ObjectMapper();
// create an instance of DefaultPrettyPrinter
ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());
// convert user object to pretty print JSON
String json = writer.writeValueAsString(user);
// print JSON string
System.out.println(json);
} catch (Exception ex) {
ex.printStackTrace();
}
For more Jackson examples, check out the how to read and write JSON using Jackson in Java tutorial.
✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.