Дата формата при возврате даты JSON
Шаг 1: Создать класс CustomObjectMapper
/*** Решите проблему, что, когда SpringMVC использует @Responsebody для возврата JSON, формат даты отображается как временная метка по умолчанию. Необходимо использовать */ @component ("CustomObjectMapper") открытый класс CustomObjectMapper extends objectMapper {public customObjectMapper () {customSerializerFactory factory = new CustomSeriaRizeFactory (); factory.addgenericmapping (date.class, новый jsonserializer <tay> () {@override public void serialize (значение даты, Jsongenerator JSongenerator, SerializerProvider Provide jsongenerator.writestring (sdf.format (value)); this.setSerializerFactory (Factory); }}Шаг 2: Конфигурация заключается в следующем:
<MVC: управлять аннотациями> <mvc: customobjectmapper »> <bean> <bean> <name =" objectmapper "ref =" customobjectmapper "
Эффекты следующие:
Перед форматированием
После форматирования
Advanced: вернуться к дате пользовательского формата
Возвращает формат даты строки JSON при использовании @Responsebody. Атрибут типа даты возвращает метку времени длительного типа по умолчанию. Как это может вернуть пользовательский формат даты?
Решение: в настоящее время есть два способа его реализации,
1. Частичные модификации (больше онлайн, но не рекомендуется);
Унаследовать абстрактный класс Джексона: Jsoneserializer <T>, а затем добавьте аннотацию @Jsoneserialize к собственности Getter () Javabean.
Код заключается в следующем:
импортировать java.io.ioexception; импортировать java.text.simpledateformat; импортировать java.util.date; Импорт org.codehaus.jackson.jsongenerator; Импорт org.codehaus.jackson.jsonprocessingException; Импорт org.codehaus.jackson.map.jsonserializer; Импорт org.codehaus.jackson.map.serializerprovider; / *** @description пользовательский возврат json date formating обработка в сетке данных*/ public class customdateserializer extends jsonserializer <tate> {@override public void serialize (значение даты, JSongenerator jsongenerator, SerializerPuder Provider) THROWERSCEPTIO SimpleDateFormat ("yyyy-mm-dd HH: MM: SS"); jsongenerator.writestring (sdf.format (значение)); }} Как использовать:
@Jsonserialize (с помощью = customDateSeRializer.class) Общественная дата getCreatedate () {return Catureate; } 2. Глобальная модификация (настоятельно рекомендуется):
MappingJacksonhttpmessageConverter в основном использует ObjectMapper для возврата строк JSON. Здесь мы наследуем этот класс и зарегистрируем Jsonserializer <T>. Затем введите пользовательский объект Mobjapper в файл конфигурации.
Код заключается в следующем:
импортировать java.io.ioexception; импортировать java.text.simpledateformat; импортировать java.util.date; Импорт org.codehaus.jackson.jsongenerator; Импорт org.codehaus.jackson.jsonprocessingException; Импорт org.codehaus.jackson.map.jsonserializer; Импорт org.codehaus.jackson.map.objectmapper; Импорт org.codehaus.jackson.map.serializerprovider; Import org.codehaus.jackson.map.ser.customserializerFactory; / *** @description Решить тип даты, чтобы вернуть формат JSON в качестве пользовательского формата*/ public Class CustomObjectMapper Extends objectMapper {public customObjectMapper () {CustomSerializerFactory Factory = new CustomSeriatorizerFactory (); factory.addgenericmapping (date.class, новый jsonserializer <tay> () {@override public void serialize (значение даты, Jsongenerator JSongenerator, SerializerProvider Provide jsongenerator.writestring (sdf.format (value)); this.setSerializerFactory (Factory); }}Настройка в Spring-servlet.xml:
<MVC: управлять аннотациями> <mvc: customobjectmapper »> <bean> </bean name =" objectmapper "ref =" customobjectmapper "