SpringMVC의 Jackson 시리얼화된 날짜 형식

2040 단어 기업 응용
1. 자바에서.util.Date 유형의 속성에 대한 Getter 메서드 추가

@JsonSerialize(using=JsonDateSerializer.class)

코드는 다음과 같습니다.

package com.demo.bean;

import java.io.Serializable;
import java.util.Date;

import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.demo.common.JsonDateSerializer;

/**
 *      
 */
public class Customer implements Serializable {
	
	private static final long serialVersionUID = -4607553711147242790L;
	
	private Date time;
	
	public Customer() {
		super();
	}
	
	
        @JsonSerialize(using=JsonDateSerializer.class)
        public Date getTime() {
		return time;
	}
	public void setTime(Date time) {
		this.time = time;
	}
	
}


2. JACKSON의 서열화된 날짜 형식의 클래스를 정의하려면 Json Serializer를 계승하고 그 안의 Serialize 방법을 덮어써야 한다. 코드는 다음과 같다.

package com.demo.common;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;


public class JsonDateSerializer extends JsonSerializer<Date> {

	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	@Override
	public void serialize(Date date, JsonGenerator gen,
			SerializerProvider provider) throws IOException,
			JsonProcessingException {

		String formattedDate = dateFormat.format(date);

		gen.writeString(formattedDate);
	}

}


3. 결과:
시리얼화하기 전:
"time":1348467243000
시리얼화된 후:
"time":"2012-09-24 14:14:03"

좋은 웹페이지 즐겨찾기