JSON 날짜를 반환 할 때 형식 날짜
1 단계 : CustomObjectMapper 클래스를 만듭니다
/*** SpringMVC가 @ResponseBody를 사용하여 JSON을 반환 할 때 날짜 형식은 기본적으로 타임 스탬프로 표시되는 문제를 해결합니다. */ @component ( "CustomObjectMapper") Public Class CustomObjectMapper를 확장하여 ObjectMapper {public CustomObjectMapper () {CustomSerializerFactory = New CustomSerializerFactory (); Factory.addgenericmapping (date.class, new jsonserializer <date> () {@override public void serialize (날짜 값, jsongenerator jsongenerator, serializerprovider provider)는 ioexception, jsonprocessingexception {simplededateformat sdf = new simpledateformat ( "yyyymm mm dd. HH : MM : SS "); jsongenerator.writestring (sdf.format (value));}}); this.setserializerfactory (공장); }}2 단계 : 구성은 다음과 같습니다.
<mvc : 주석 구동> <mvc : message-converters> <bean> <property name = "objectMapper"ref = "customObjectMapper"> </property> </bean> </mvc : message-converters> </mvc : Annotation-Driven>
효과는 다음과 같습니다.
서식 전
서식 후
고급 : 사용자 정의 형식 날짜로 돌아갑니다
@ResponseBody를 사용할 때 JSON 문자열의 날짜 형식을 반환합니다. 날짜 유형 속성은 기본적으로 긴 유형 타임 스탬프를 반환합니다. 사용자 정의 날짜 형식을 어떻게 반환 할 수 있습니까?
솔루션 : 현재 구현하는 두 가지 방법이 있습니다.
1. 부분 수정 (온라인, 권장되지 않음);
Jackson의 추상 클래스 : jsonserializer <t>를 상속 한 다음 @jsonserialize를 Javabean의 속성 getter ()에 추가하십시오.
코드는 다음과 같습니다.
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; / *** 데이터 그리드에서 @description 사용자 정의 반환 JSON 날짜 서식 처리*/ public class customDateserializer 확장 jsonserializer <date> {@override public void serialize (날짜 값, jsongenerator jsongenerator, throws ioxception, jsonprocessingexception {simpledgormat sdf = 새로운 simpledateformat ( "yyyy-mm-dd hh : mm : ss"); jsongenerator.writestring (sdf.format (value)); }} 사용 방법 :
@jsonserialize (using = customdateserializer.class) public date getCreatedate () {return createate; } 2. 글로벌 수정 (강력하게 권장) :
매핑 JacksonhttpMessageConverter는 주로 ObjectMapper를 사용하여 JSON 문자열을 반환합니다. 여기서 우리는이 클래스를 상속하고 jsonserializer <t>를 등록합니다. 그런 다음 custom objectMapper를 구성 파일에 전환하십시오.
코드는 다음과 같습니다.
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.objectmapper; import org.codehaus.jackson.map.serializerprovider; import org.codehaus.jackson.map.ser.customserializerfactory; /** * @description Solve the Date type to return the json format as a custom format*/ public class CustomObjectMapper extends ObjectMapper { public CustomObjectMapper(){ CustomSerializerFactory factory = new CustomSerializerFactory(); Factory.addgenericmapping (date.class, new jsonserializer <date> () {@override public void serialize (날짜 값, jsongenerator jsongenerator, serializerprovider provider)는 ioexception, jsonprocessingexception {simplededateformat sdf = new simpledateformat ( "yyyymm mm dd. HH : MM : SS "); jsongenerator.writestring (sdf.format (value));}}); this.setserializerfactory (공장); }}Spring-servlet.xml에서 구성 :
<mvc : 주석 구동> <mvc : message-converters> <bean> <bean> <property name = "objectMapper"ref = "customObjectMapper"> </property> </bean> </mvc : messern-converters> </mvc : annotation-driven> <bean id = "CustomObjectMapper "> </bean>