Jackson API는 자바 기반 라이브러리로, 자바 객체를 JSON으로 변환하거나 그 반대로 변환할 때 유용하게 사용됩니다. Jackson API는 다른 라이브러리보다 속도가 빠르고 메모리 사용량이 적어 대용량 객체를 처리하는 데에도 적합합니다. Jackson은 Streaming API, Tree Model, Data Binding이라는 세 가지 방식으로 JSON을 처리할 수 있습니다.
JSON을 보기 좋게 정렬하여 출력(예쁜 인쇄, Pretty Print)하려면 ObjectMapper 클래스의 writerWithDefaultPrettyPrinter() 메서드를 사용하면 됩니다. 이 메서드는 기본적으로 제공되는 들여쓰기용 pretty printer를 사용해 객체를 직렬화하는 ObjectWriter를 생성하는 팩토리 메서드입니다.
문법
public ObjectWriter writerWithDefaultPrettyPrinter()
예제
import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class PrettyPrintJsonJacksonTest {
public static void main(String[] args) throws IOException {
String data = "{\"Age\":30,\"Technologies\":[\"Java\",\"Spark\",\"Python\"],\"Name\":\"Adithya\"}";
ObjectMapper mapper = new ObjectMapper();
Object json = mapper.readValue(data, Object.class);
// Pretty print JSON
String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(json);
System.out.println(jsonStr);
}
}
위 코드에서는 먼저 문자열 형태의 JSON 데이터를 readValue() 메서드로 파싱한 후, writerWithDefaultPrettyPrinter()와 writeValueAsString()을 조합하여 들여쓰기가 적용된 JSON 문자열을 생성합니다.
출력 결과
{
"Age" : 30,
"Technologies" : [ "Java", "Spark", "Python" ],
"Name" : "Adithya"
}
출력 결과를 보면 한 줄로 길게 이어져 있던 원본 JSON과 달리, 각 항목이 줄바꿈과 들여쓰기로 구분되어 훨씬 읽기 쉬운 형태로 정렬된 것을 확인할 수 있습니다. 로그 분석이나 디버깅 시 JSON 구조를 빠르게 파악해야 할 때 이 방법이 특히 유용합니다.