Best way to make JSON pretty in Java

I have list of objects returning like the below format (not pretty).


I would like it to show like this (pretty).


This is my method signature, along with my call to the service to query the DB and the return that prints json to screen.

public @ResponseBody ResponseEntity<ResponseData<List<NameSearchDTO>>> getInfo(@PathVariable String code, @PathVariable String idType)

ResponseData<List<NameSearchDTO>> response = new ResponseData<>();

List<NameSearchDTO> results = officeService.getByCode(code, idType); 
if (!results.isEmpty()) {
return new ResponseEntity<>(response, HttpStatus.OK);

The ResponseData Class implements Serializable. Does this make it "true" JSON as I'm not using Jackson or any other JSON library?

How do I pass the response to the below ObjectMapper to make it pretty?

ObjectMapper jacksonMapper = new ObjectMapper();
jacksonMapper.configure(SerializationFeature.INDENT_OUTPUT, true);

Or do I need to create some sort of JSONHelper class?

ResponseData Class

public class ResponseData <E> implements Serializable{

    private E data;
    private String status;
    private String message;
    private boolean hasValidationError = false;

    public E getData() {
        return data;

    public void setData(E data) { = data;

    public String getStatus() {
        return status;

    public void setStatus(String status) {
        this.status = status;

    public String getMessage() {
        return message;

    public void setMessage(String message) {
        this.message = message;

    public boolean getHasValidationError(){
        return hasValidationError;

    public void setHasValidationError(boolean hasValidationError){
        this.hasValidationError = hasValidationError;


  • I think the best way beautify the json string is as follows using Jackson:

    import com.fasterxml.jackson.databind.ObjectMapper;
    ObjectMapper objectMapper = new ObjectMapper();