Data de formato ao retornar a data do JSON
Etapa 1: Crie Classe CustomObjectMapper
/*** Resolva o problema de que, quando o SpringMVC usa @ResponseBody para retornar o JSON, o formato da data é exibido como um registro de data e hora por padrão. Precisa usar */ @Component ("CustomObjectMapper") Classe public CustomObjectMapper estende ObjectMapper {public CustomObjectMapper () {CustomSerializerFactory Factory = new CustomSerializerFactory (); factory.addGenericMapping(Date.class, new JsonSerializer<Date>() { @Override public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException, JsonProcessingException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); jsongEnerator.writestring (sdf.format (value)); this.SetSerializerFactory (Factory); }}Etapa 2: A configuração é a seguinte:
<MVC: anotação-driven> <mvc: message-confters> <ean> <propriedade name = "objectMapper" ref = "CustomObjectMapper"> </ousether> </i bean> </mvc: message-converters> </mvc: anotação-driven>
Os efeitos são os seguintes:
Antes da formatação
Após a formatação
Avançado: Retorne à data do formato personalizado
Retorna o formato de data da string json ao usar @ResponseBody. O atributo do tipo de data retorna um registro de data e hora de tipo longo por padrão. Como ele pode retornar um formato de data personalizado?
Solução: atualmente existem duas maneiras de implementá -lo,
1. Modificações parciais (mais online, mas não recomendadas);
Herite a classe abstrata de Jackson: JSonserializer <T> e adicione a anotação @jSonserialize à propriedade getter () do Javabean.
O código é o seguinte:
importar java.io.ioException; importar java.text.simpledateFormat; importar java.util.date; importar org.codehaus.jackson.jsongnerator; importar org.codehaus.jackson.jsonprocessingException; importar org.codehaus.jackson.map.jsonserializer; importar org.codehaus.jackson.map.serializerProvider; / *** @Description Retorno personalizado JSON Formating Processamento de dados Grid*/ public class CustomDateSerializer estende o JSOnserializer <TATE> {@Override public void serialize (valor de data, Jsongenerator jsongenCencception, SurializerProvider) lança IoException, JSOnProcessCexceptionCexception, {SurializerProvider). SimpledateFormat ("AAAA-MM-DD HH: MM: SS"); jsongenerator.writestring (sdf.format (value)); }} Como usar:
@JSonserialize (usando = customDateSerializer.class) public data getCreatedate () {return criatedate; } 2. Modificação global (fortemente recomendada):
O MappingjacksonHttpMessageConverter usa principalmente o ObjectMapper para retornar o JSON Strings. Aqui, herdamos esta classe e registramos um JSonserializer <T>. Em seguida, injete um objeto personalizado no arquivo de configuração.
O código é o seguinte:
importar java.io.ioException; importar java.text.simpledateFormat; importar java.util.date; importar org.codehaus.jackson.jsongnerator; importar org.codehaus.jackson.jsonprocessingException; importar org.codehaus.jackson.map.jsonserializer; importar org.codehaus.jackson.map.objectmapper; importar org.codehaus.jackson.map.serializerProvider; importar org.codehaus.jackson.map.ser.customSerializerFactory; / *** @Description Resolva o tipo de data para retornar o formato JSON como um formato personalizado*/ public class CustomObjectMapper estende ObjectMapper {public CustomObjectMapper () {CustomSerializerFactory Factory = new CustomSerializerFactory (); factory.addGenericMapping(Date.class, new JsonSerializer<Date>(){ @Override public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException, JsonProcessingException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); jsongEnerator.writestring (sdf.format (value)); this.SetSerializerFactory (Factory); }}Configure em Spring-Servlet.xml:
<mvc:annotation-driven> <mvc:message-converters> <bean> <property name="objectMapper" ref="customObjectMapper"></property> </bean> </mvc:message-converters> </mvc:annotation-driven> <bean id="customObjectMapper"></bean>