back end/java

[java] JSON string을 이쁘게 출력하는 방법 - json string pretty print

노루아부지 2022. 10. 23. 14:58
반응형

다음과 같이 User를 JSON string 형태로 변환할 때 다음과 같이 코드를 작성합니다.

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class User {
  private String userId;
  private String name;
  private String email;
}
package com.example.demo;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TestUtil {
  public static void main(String[] args) throws JsonProcessingException {
    User user = new User();
    user.setUserId("1");
    user.setName("John");
    user.setEmail("aaa@gmail.com");
    ObjectMapper mapper = new ObjectMapper();
    System.out.println(mapper.writeValueAsString(user));
  }
}

 

이 코드의 출력 결과는 다음과 같습니다.

{"userId":"1","name":"John","email":"aaa@gmail.com"}

 

이렇게 출력하면 가독성이 떨어집니다.

가독성 좋게 출력하려면 간단합니다. writerWithDefaultPrettyPrinter()를 추가하면 됩니다.

 

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class TestUtil {
  public static void main(String[] args) throws JsonProcessingException {
    User user = new User();
    user.setUserId("1");
    user.setName("John");
    user.setEmail("aaa@gmail.com");
    ObjectMapper mapper = new ObjectMapper();
    System.out.println(
      mapper
        .writerWithDefaultPrettyPrinter()
        .writeValueAsString(user)
    );
  }
}

 

이 코드의 실행 결과는 다음과 같습니다.

json string pretty print

728x90
반응형