com.fasterxml.jackson.
먼저 두개를 비교하자면 com.fasterxml.jackson.
(https://groups.google.com/forum/#!topic/jackson-user/CSFwq72lZC8)
Jackson 라이브러리의 ObjectMapper 를 가지고 JSON 변환 작업을 하는데, 두 가지를 혼용해서 사용하다가 Date 관련 필드를 변환하다가 차이점이 있다는 것을 발견했다.
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone="UTC")
private Date regDate; // 등록일시
Jackson 라이브러리 2.0 에서부터 지원하는 @JsonFormat 를 이용해서 Date(java.util.Date) 의 기본 변환 형태인 timestamp(EPOCH 타임에 해당하는 값의 밀리세컨즈 값) 를 날짜 포맷으로 바꾸고, JSON 문자열로 변환하면 원하는 날짜형으로 출력된다.
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class AAAAA {
@Test
public void toJsonTest() {
UserObject ojb = new UserObject();
obj.setUserId("testId1");
obj.setRegDate(new Date());
ObjectMapper mapper = new ObjectMapper();
String str = mapper.writeValueAsString(obj);
System.out.println("Result = " + str);
}
출력
Result:{"userId":"testId1","regDate":"2015-11-18 09:11:40"}
com.fasterxml.jackson.databind 부분을 org.codehaus.jackson 으로 교체를 하면(즉, 1.X 버전을 사용하면) 결과값이 timestamp 값으로 표시된다.
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class AAAAA {
@Test
public void toJsonTest() {
UserObject ojb = new UserObject();
obj.setUserId("testId1");
obj.setRegDate(new Date());
ObjectMapper mapper = new ObjectMapper();
String str = mapper.writeValueAsString(obj);
System.out.println("Result = " + str);
}
출력
Result:{"userId":"testId1","regDate":1447838769314}
참고 사이트
http://stackoverflow.com/questions/9038005/spring-3-1-json-date-format
'Engineering > Java' 카테고리의 다른 글
jackson 라이브러리 deserialize 오류 (0) | 2016.01.04 |
---|---|
java version 변경(update-alternatives) (0) | 2015.12.03 |
Java's Primitive Data Types (0) | 2014.09.03 |
linux 에 maven(mvn) 설치 (1) | 2014.07.31 |
blowfish 를 이용한 문자열 인코딩/디코딩 예제 (0) | 2013.10.30 |