מדריך ל- @ JsonFormat בג'קסון

1. סקירה כללית

במאמר זה אנו מנסים להבין כיצד להשתמש @JsonFormat בג'קסון. זוהי הערה של ג'קסון המשמשת כדי לציין כיצד לעצב שדות ו / או מאפיינים עבור פלט JSON.

באופן ספציפי, ביאור זה מאפשר לך לציין כיצד לעצב תַאֲרִיך ו לוּחַ שָׁנָה ערכים לפי א SimpleDateFormat פוּרמָט.

2. תלות של Maven

@JsonFormat מוגדר בחבילת jackson-databind ולכן אנו זקוקים לתלות Maven הבאה:

 com.fasterxml.jackson.core jackson-databind 2.11.1 

3. תחילת העבודה

3.1. שימוש בפורמט ברירת המחדל

כדי להתחיל, נדגים את מושגי השימוש ב- @JsonFormat ביאור עם מחלקה המייצגת משתמש.

מכיוון שאנו מנסים להסביר את פרטי ההערה, מִשׁתַמֵשׁ האובייקט ייווצר על פי בקשה (ולא יאוחסן או נטען ממסד נתונים) ויועבר לסדרת JSON:

מחלקה ציבורית משתמש {פרטי מחרוזת firstName; שם משפחה פרטי מחרוזת; תאריך פרטי createdDate = תאריך חדש (); // קונסטרוקטור סטנדרטי, סטרים וגטרים} 

בנייה והפעלת דוגמת קוד זה מחזירה את הפלט הבא:

{"firstName": "John", "lastName": "Smith", "createdDate": 1482047026009}

כפי שאתה יכול לראות, תאריך יצירה שדה מוצג כמספר השניות מאז תקופה שהיא פורמט ברירת המחדל המשמש תַאֲרִיך שדות.

3.2. שימוש בהערה על גטר

הבה נשתמש כעת @JsonFormat כדי לציין את הפורמט ש- תאריך יצירה יש לסדר את השדה. הנה מחלקת המשתמשים המעודכנת לשינוי זה. ה תאריך יצירה שדה הועלה כמוצג כדי לציין את פורמט התאריך.

פורמט הנתונים המשמש ל תבנית הטיעון מוגדר על ידי SimpleDateFormat:

@JsonFormat (צורה = JsonFormat.Shape.STRING, דפוס = "[מוגן באמצעות דוא"ל]: מ"מ: ss.SSSZ") תאריך פרטי שנוצר תאריך;

עם שינוי זה במקום, אנו בונים את הפרויקט שוב ​​ומפעילים אותו. הפלט מוצג להלן:

{"firstName": "John", "lastName": "Smith", "createdDate": "[מוגן באמצעות הדוא"ל]: 53: 34.740 + 0000"}

כפי שאתה יכול לראות, תאריך יצירה השדה עוצב באמצעות המצוין SimpleDateFormat פורמט באמצעות @JsonFormat ביאור.

הדוגמה שלעיל מדגימה שימוש בהערה בשדה. ניתן להשתמש בו גם בשיטת גטר (מאפיין) כדלקמן.

לדוגמא, ייתכן שיש לך מאפיין שמחושב באמצעות הפעלה. אתה יכול להשתמש בהערה בשיטת גטר במקרה כזה. שים לב שהתבנית שונתה גם כדי להחזיר רק את חלק התאריך של הרגע:

@JsonFormat (צורה = JsonFormat.Shape.STRING, תבנית = "yyyy-MM-dd") תאריך ציבורי getCurrentDate () {החזר תאריך חדש (); }

התפוקה המתקבלת היא כדלקמן:

{..., "currentDate": "2016-12-18", ...}

3.3. ציון האזור

בנוסף לציון פורמט התאריך, תוכל גם לציין את האזור שישמש לסידור. אי ציון פרמטר זה מביא לביצוע הסידור עם אזור ברירת המחדל:

@JsonFormat (צורה = JsonFormat.Shape.STRING, תבנית = "[דוא"ל מוגן]: מ"מ: ss.SSSZ", locale = "en_GB") תאריך ציבורי getCurrentDate () {החזר תאריך חדש (); }

3.4. ציון הצורה

באמצעות @JsonFormat עם צוּרָה מכוון ל JsonFormat.Shape.NUMBER מביא לפלט ברירת המחדל עבור תַאֲרִיך סוגים - כמספר השניות מאז התקופה. הפרמטר תבנית אינו רלוונטי למקרה זה ומתעלמים ממנו:

@JsonFormat (צורה = JsonFormat.Shape.NUMBER) תאריך ציבורי getDateNum () {החזר תאריך חדש (); }

הפלט הוא כמוצג להלן:

{..., "dateNum": 1482054723876}

4. מסקנה

לסיכום, @JsonFormat משמש לבקרת תבנית הפלט של תַאֲרִיך ו לוּחַ שָׁנָה סוגים כפי שהודגם לעיל.

קוד הדוגמה המוצג לעיל זמין ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found