Jason Output 이쁘게 보기 (human-readable)

개발을 하다 보면 JSON Text 데이터를 로그로 출력할때 사람이 보기 힘들게 출력이 됩니다.
즉, 자바에서 Color 객체를 JSON으로 마샬링해서 출력 하면 아래와 같이 보일 겁니다.


{“alpha”:255,”rgb”:-15297627,”blue”:165,”colorSpace”:{“type”:5,”numComponents”:3,”profile”:{“matrix”:………………

그래서 사람이 읽기 편한(human-readable) Tip을 간략하게 소개 하고자 합니다.

 1. 선행 조건

  • Maven 설정은 아래와 같습니다.
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.6.1</version>
</dependency>
<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.4</version>
</dependency>
  • 만약 Maven을 사용하지 않는 분들은 아래와 같은 라이브러리가 필요 합니다.

(1) slf4j-log4j.jar
(2) slf4j-api.jar
(3) log4j.jar
(4) Jackson-mapper-asl.jar
(5) jackson-core-asl.jar

※ 최신버전으로 받으시면 무난할듯 합니다.

2. 적용 방법

  • 아래의 소스 “#1”을 추가만 하시면 됩니다.
import java.awt.Color;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Log4JsonTest {

    /*-------------------------------------------------
    |             C O N S T A N T S                       |
    ---------------------------------------------------*/
    private static final Logger logger = LoggerFactory
            .getLogger(Log4JsonTest.class);

    /*-------------------------------------------------
    |             S E L F / M E T H O D S                |
    ---------------------------------------------------*/
    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        Color c = new Color(22, 147, 165);
        ObjectMapper jsonMapper = new ObjectMapper();
        //#1
            jsonMapper.configure(
              SerializationConfig.Feature.INDENT_OUTPUT, true);
        String dutchTeal = jsonMapper.writeValueAsString(c);
        System.out.println(dutchTeal);
   }
}
  • 출력 결과
 {
  "alpha" : 255,
  "rgb" : -15297627,
  "blue" : 165,
  "colorSpace" : {
    "type" : 5,
    "numComponents" : 3,
    "profile" : {
      "matrix" : [ [ 0.43606567, 0.3851471, 0.1430664 ], [ 0.2224884, 0.71687317, 0.06060791 ], [ 0.013916016, 0.097076416, 0.71409607 ] ],
      "mediaWhitePoint" : [ 0.9504547, 1.0, 1.0890503 ],
      "numComponents" : 3,
      "colorSpaceType" : 5,
      "majorVersion" : 2,
      "minorVersion" : 16,
      "pcstype" : 0,
      "profileClass" : 1
    },
    "cs_sRGB" : true
  },
  "green" : 147,
  "red" : 22,
  "transparency" : 1
}

참고 자료

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중