تاريخ التنسيق عند إرجاع تاريخ JSON
الخطوة 1: إنشاء فئة CustomObjectMapper
/*** حل المشكلة أنه عندما يستخدم SPRINGMVC RESPONSEBODY لإرجاع JSON ، يتم عرض تنسيق التاريخ كطابع زمني افتراضيًا. تحتاج إلى استخدام */ component ("CustomObjectMapper") الفئة العامة CustomObjectMapper تمتد ObjectMapper {public upplectmapper () {customSerializerFactory Factory = new CustomSerializerFactory () ؛ Factory.AddGenericmapping (Date.class ، New JsonSerializer <Date> () {Override public void serialize (قيمة التاريخ ، jsongenerator jsongenerator ، موفر SerializerProvider) يلقي IoException ، jsonprocessingexception {simpledateformat sdf = new simpledateformat ( jsongenerator.writeString (sdf.format (value)) ؛ this.SetSerializerFactory (المصنع) ؛ }}الخطوة 2: التكوين كما يلي:
<mvc: تعرض التعليق التوضيحي> <mvc: message-converters> <boan> <property name = "ObjectMapper" ref = "customObjectMapper"> </propert
الآثار هي كما يلي:
قبل التنسيق
بعد التنسيق
متقدم: العودة إلى تاريخ التنسيق المخصص
إرجاع تنسيق التاريخ لسلسلة JSON عند استخدام ResponseBody. تُرجع سمة نوع التاريخ طابعًا زمنيًا طويلًا بشكل افتراضي. كيف يمكن أن تُرجع تنسيق تاريخ مخصص؟
الحل: هناك حاليًا طريقتان لتنفيذها ،
1. التعديلات الجزئية (أكثر عبر الإنترنت ، ولكن لا ينصح بها) ؛
ويرث جاكسون المجردة: jsonserializer <T> ، ثم أضف التعليق التوضيحي @jsonserialize إلى الممتلكات 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 custrime custom return return json date tonmating in data grid*/ public customdateserializer يمتد jsonserializer <date> {Override public void serialize (قيمة التاريخ ، jsongenerator jsongenerator ، serializerProvider) SimpleDateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ JSongenerator.WriteString (SDF.Format (value)) ؛ }} كيفية استخدام:
jsonserialize (باستخدام = customDateserializer.class) التاريخ العام getCreatedAte () {return createdate ؛ } 2. التعديل العالمي (موصى به بشدة):
MapPingJacksonHttpMessageConverter يستخدم بشكل أساسي ObjectMapper لإعادة سلاسل JSON. هنا نرث هذا الفصل وتسجيل jsonserializer <T>. ثم حقن كائن مخصص في ملف التكوين.
الرمز كما يلي:
استيراد 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 ؛ استيراد org.codehaus.jackson.map.ser.customserializerFactory ؛ / *** description حل نوع التاريخ لإرجاع تنسيق JSON كتنسيق مخصص*/ فئة عامة CustomObjectMapper يمتد ObjectMapper {publicoBjectMapper () {customSerializerFactory Factory = new CustomSerializerFactory () ؛ Factory.AddGenericmapping (Date.class ، New JsonSerializer <Date> () {Override public void serialize (قيمة التاريخ ، jsongenerator jsongenerator ، موفر SerializerProvider) يلقي IoException ، jsonprocessingexception {simpledateformat sdf = new simpledateformat ( jsongenerator.writeString (sdf.format (value)) ؛ this.SetSerializerFactory (المصنع) ؛ }}تكوين في الربيع servlet.xml:
<mvc: تعرض التعليق التوضيحي> <mvc: message-converters> <boan> <property name = "ObjectMapper" ref = "customObjectMapper"> </propert