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.