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

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


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

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

선행조건

  • 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

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

적용 방법

  • 아래의 소스를 보면 bold로 처리된 부분을 추가만 하시면 됩니다.

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
}

참고 자료

Published by: beyondj2ee

Past SI AA, now I am pikicast developer in yellow mobile and daddy, Java, Spring, OpenSource, Application Architect :) Java Application Architect. mail : beyondj2ee@gmail.com twitter : twitter.com/beyondj2ee facebook : https:www.facebook.com/beyondj2ee blog: http:beyondj2ee.wordpress.com

Categories useful댓글 남기기

답글 남기기

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

WordPress.com 로고

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

Twitter 사진

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

Facebook 사진

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

Google+ photo

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

%s에 연결하는 중