כיתת ObjectMapper בג'קסון
ObjectMapper הוא אחד השיעורים החשובים ביותר שקיימים בו הג'קסון סִפְרִיָה. הוא משמש לקריאה ולכתיבה של נתוני JSON. הוא אחראי לקריאת נתונים מקובץ POJO ואל וממנו מודל עץ JSON.
ישנם המאפיינים הבאים של מחלקה ObjectMapper:
- הוא תומך במושגים מתקדמים כגון רב צורתיות ו זיהוי אובייקט.
- זה מאוד להתאמה אישית לעבוד עם סגנונות שונים של תוכן JSON.
- זה עובד כמפעל למקדמה ObjectReader ו ObjectWriter שיעורים.
המחלקה ObjectMapper מוצהרת באופן הבא:
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
כיתות מקוננות
הטבלה הבאה מגדירה את המחלקות שמרחיבות את מחלקת ObjectMapper או, אפשר לומר, מחלקות מקוננות של מחלקה ObjectMapper.
| מעמד | תיאור |
|---|---|
| DefaultTypeResolverBuilder | זה מותאם אישית TypeResolverBuilder מחלקה המשמשת לקבל את בוני פותרי הסוג, שאיתם נוכל להשתמש 'ברירת המחדל של הקלדה'. |
| DefaultTyping | על מנת לציין את סוג הסוגים, נעשה שימוש בספירות עם השיטה enableDefaultTyping() . |
כעת, בואו נבין את השדות, הבנאים והשיטות של מחלקה ObjectMapper:
שדות של מחלקה ObjectMapper
protected DefaultDeserializationContext _deserializationContext
זהו אובייקט הקשר של שרטוט המאוחסן כדי לאפשר תת-מחלקות מותאמות אישית.
protected DeserializationConfig _deserializationConfig
זהו אובייקט תצורה המשמש להגדרת ההגדרות הגלובליות הבסיסיות לתהליך דה-סריאליזציה.
JsonFactory מוגן jsonFactory
על מנת ליצור מופע של JsonParser ו-JsonGenerator, נעשה שימוש ב-JsonFactory.
מוגן InjectableValues _injectableValues
זהו ספק המשמש להזרקת הערכים ב-POJO מנותק בסידרה.
מוגן ConfigOverrides _propertyOverrides
הוא משמש לגישה לעקיפות התצורה הפעילות כרגע לפי סוג.
מוגן SimpleMixInResolver _mixIns
זהו מיפוי המשמש להגדרת דרך להחלת הערות ערבוב. המיפוי נעשה בדרך הבאה:
מַפְתֵחַ: הקלד כדי לקבל הערות נוספות.
ערך: סוג שיש בו הערות ל'ערבב'
protected Set _registeredModuleTypes
זהו סט שמגדיר את קבוצת סוגי המודולים שנרשמו.
מוגן SerializationConfig _serializationConfig
זהו גם אובייקט תצורה המשמש להגדרת ההגדרות הגלובליות הבסיסיות לתהליך ההסדרה.
מוגן ConcurrentHashMap
זוהי מפה המשמשת כדי לעקוב אחר דה-סריאלייזרים ברמת השורש. זוהי מפה ברמה עיקרית.
מוגן SerializerFactory _serializerFactory
זה מפעל המשמש לבניית הסדרות.
מוגן SubtypeResolver _subtypeResolver
הוא משמש לרישום תת-סוגים ולפתור אותם עבור סופר/תתי-טיפוסים לפי הצורך.
מוגן TypeFactory _typeFactory
זהו מפעל המשמש ליצירת מופעי JavaType. הם נדרשים כדי לאפשר למודולים להוסיף עוד טיפול בסוג מותאם אישית.
protected DefaultSerializerProvider _serializerProvider
זהו אובייקט שאחראי על ניהול הגישה לסריאלייזרים המשמשים לסידרה.
מוגן סטטי BaseSettings DEFAULT_BASE
מדובר בהגדרות בסיס הכוללות ברירות מחדל המשמשות עבור כל מופעי ObjectMapper.
בונים של מחלקת ObjectMapper
ישנם הבנאים הבאים של המחלקה ObjectMapper:
| בַּנַאִי | תיאור |
|---|---|
| ObjectMapper() | זהו בנאי ברירת מחדל המשמש לבניית מופע המשתמש בברירת מחדל JsonFactory, SerializerProvider, ו BeanSerializerFactory. |
| ObjectMapper (מפעל JsonFactory) | הוא משמש לבניית מופע המשתמש ב-JsonFactory הנתון. ה-JsonFactory הנתון משמש לבנייה JsonParsers ו/או JsonGenerators. |
| ObjectMapper (מפעל JsonFactory, ספק ספק ה-Serializer1, ספק ספק Deserializer2) | הוא משמש לבניית מופע המשתמש בנתון JsonFactory, SerializerProvider, ו DeserializerProvider. ה-JsonFactory הנתון משמש לבנייה JsonParsers ו/או JsonGenerators. |
| מוגן ObjectMapper(ObjectMapper mapper) | זהו בונה העתקה לתמיכה ב-copy(). |
שיטות מחלקה של ObjectMapper
המחלקה ObjectMapper מגדירה את השיטות הבאות:
| שיטה | סוג החזרה | תיאור |
|---|---|---|
| _checkInvalidCopy(Class exp) | בָּטֵל | הוא משמש לבדיקת עותק לא חוקי. |
| _configAndWriteValue(JsonGenerator g, ערך אובייקט) | בָּטֵל | הוא משמש להגדרת המחולל בעת הצורך ולאחר מכן לביצוע פונקציונליות הכתיבה. |
| _convert(Object fromValue, JavaType toValueType) | לְהִתְנַגֵד | הוא משמש כדי לקבל את יישום ההמרה בפועל. כאן, לא נעשה שימוש בשיטות קריאה וכתיבה עבור הקוד. |
| _initForReading(JsonParser p) | JsonToken | הוא משמש כדי לוודא אם המנתח הנתון מוכן לקריאת תוכן לקשירת נתונים או לא. |
| _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) | JsonDeserializer | עבור הערך ברמת השורש שעבר, אם ברצוננו לאתר את ה-de-serializer, אנו משתמשים בשיטה זו. |
| _newReader(תצורת DeserializationConfig) שיטה דומה:
| ObjectReader | זוהי שיטת מפעל, כלומר, המשמשת כדי לקבל את מופעי ObjectReader של תת-סוג מתאים. על מנת להשתמש בשיטה זו, יש צורך שתת המחלקות חייבות לעקוף. |
| _newWriter(SerializationConfig config) שיטות דומות:
| ObjectWriter | זוהי שיטת מפעל, כלומר, המשמשת כדי לקבל את מופעי ObjectWriter של תת-סוג מתאים. על מנת להשתמש בשיטה זו, יש צורך שתת המחלקות חייבות לעקוף. |
| _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) | לְהִתְנַגֵד | הוא משמש כדי לקבל אובייקט שמגדיר קריאת ערך ופעולת כריכה. |
| _serializerProvider(SerializationConfig config) | DefaultSerializerProvider | זוהי שיטת עוזר הניתנת לביטול המשמשת לבניית SerializerProvider. |
| acceptJsonFormatVisitor(סוג מחלקה, מבקר JsonFormatVisitorWrapper) שיטה דומה:
| בָּטֵל בָּטֵל | אם ברצוננו לבקר בהיררכיית הסוגים של סוג מסוים עם המבקר שצוין, אנו משתמשים בשיטה זו. |
| addHandler(DeserializationProblemHandler h) | ObjectMapper | על מנת לטפל בבעיות שצוינו במהלך דה-סריאליזציה, אנו משתמשים ב-DeserializationProblemHandler שצוין, וכדי להוסיף את המטפל, אנו משתמשים בשיטה זו. |
| addMixIn(Class target, Class mixinSource) | ObjectMapper | על מנת להשתמש בהערת ערבוב עבור מחלקה או ממשק הגדלה שצוינו, אנו משתמשים בשיטה זו כדי להוסיף אותה. |
| canDeserialize (סוג JavaType) | בוליאנית | הוא משמש כדי לבדוק אם הממפר יכול לבטל את הרצף של אובייקט מסוג מסוים או לא. |
| canDeserialize (סוג JavaType, סיבה AtomicReference) | בוליאנית | זה דומה לשיטה הקודמת. ההבדל היחיד הוא שהוא יכול להחזיר את הניתנת לזריקה שנזרק בזמן בניית הסדרה. ניתן להשתמש בזריקה כדי להבין את הבעיה בפועל. |
| canSerialize (סוג מחלקה) | בוליאנית | הוא משמש כדי לבדוק אם הממפר יכול לבצע סדרה של אובייקט מסוג מסוים או לא. |
| canSerialize (סוג מחלקה, סיבה AtomicReference) | בוליאנית | זה דומה לשיטה הקודמת. ההבדל היחיד הוא שהוא יכול להחזיר את הניתנת לזריקה שנזרק בזמן בניית הסדרה. ניתן להשתמש בזריקה כדי להבין את הבעיה בפועל. |
| clearProblemHandlers() | ObjectMapper | זוהי אחת השיטות המשמשות להסרת כל מופעי DeserializationProblemHandlers מהמפה הרשומים. |
| configure (DeserializationFeature f, מצב בוליאני) שיטות דומות:
| ObjectMapper | הוא משמש לשינוי המצב של ביטול בהמשכה, מחולל Json, JsonParser, Mapper או תכונת Serialization עבור ממפה האובייקטים, מופעי המחולל, מופעי מנתח, מופע ממפה או ממפה אובייקטים. |
| constructType(Type t) | JavaType | אם ברצוננו לבנות את JavaType מסוג נתון ללא הקשר מפורש, אנו משתמשים בשיטה זו. |
| convertValue(Object fromValue, Class toValueType) שיטות דומות:
| ט | אם ברצוננו לבצע המרה דו-שלבית של ערך נתון למופע מסוג ערך נתון, אנו משתמשים בשיטת converValue() . |
| createArrayNode() | ArrayNode | הוא משמש ליצירת ArrayNode. |
| defaultClassIntrospector() | ClassIntrospector | אם ברצוננו להשתמש בברירת המחדל של ClassIntrospector, אנו משתמשים בשיטת ה-Overridable Helper לבנייתו. |
| השבת (תכונת DeserializationFeature) שיטות דומות:
| ObjectMapper | הוא משמש כדי להשבית נתון DeserializationConfig, JsonGenerator.Features עבור מופעי מנתח, JsonParser.Features עבור מופעי מנתח של ממפה האובייקטים. |
| disableDefaultTyping() | ObjectMapper | פעמים רבות עלינו להשבית את ההכללה האוטומטית של מידע סוג, ולצורך כך אנו משתמשים בשיטה זו. |
אפשר (תכונת DeserializationFeature)
| ObjectMapper | הוא משמש להפעלת ה-DeserializationConfig הנתון, JsonGenerator.Features עבור מופעי מנתח, JsonParser.Features עבור מופעי מנתח של ממפה האובייקטים. |
| enableDefaultTyping() שיטות דומות:
| ObjectMapper | על מנת להשתמש בהכללה אוטומטית של מידע על סוגים עבור דה-סריאליזציה של טיפוסים פולימורפיים, אנו משתמשים בשיטה זו כדי לאפשר זאת. |
| findAndRegisterModules() | ObjectMapper | זה דומה לשיטת mapper.registerModules(mapper.findModules()). |
| findModules() שיטות דומות:
| רשימה | הוא משמש לאיתור שיטות זמינות. השיטה משתמשת במתקן JDK ServiceLoader עם SPI שסופק על ידי מודול. |
| getDateFormat() | פורמט תאריך | הוא משמש כדי לקבל את הפורמט של התאריך. |
| getDeserializationConfig() | DeserializationConfig | הוא משמש כדי לקבל את אובייקט ברירת המחדל המשותף DeserializationConfig. האובייקט המוחזר מגדיר את הגדרות התצורה לביטול בהמשכה. |
| getDeserializationContext() | DeserializationContext | הוא משמש כדי לקבל את ה-DeserializationContext הנוכחי. |
| getFactory() | JsonFactory | אם המאפר צריך לבנות מנתח Json ומחוללים, הוא צריך את json factory, וכדי לקבל את זה, אנו משתמשים בשיטת getFactory() . |
| getInjectableValues() | ערכים להזרקה | הוא משמש כדי לקבל ערכים הניתנים להזרקה. |
| getJsonFactory() | JsonFactory | זוהי שיטה שהוצאה משימוש להשיג את מפעל Json. |
| getNodeFactory() | JsonNodeFactory | הוא משמש כדי לקבל את ה-JsonNodeFactory המשמש את המאפר בזמן בנייה ישירה של מופעי שורש JsonNode עבור Trees. |
| getPropertyNamingStrategy() | אסטרטגיית שמות נכסים | כפי שהשם מרמז, הוא משמש לאסטרטגיית השמות של הנכס. |
| getSerializationConfig() | SerializationConfig | הוא משמש כדי לקבל את אובייקט ברירת המחדל המשותף SerializationConfig. האובייקט המוחזר מגדיר את הגדרות התצורה לסידרה. |
| getSerializerFactory() | SerializerFactory | הוא משמש כדי לקבל את SerializerFactory הנוכחי. |
| getSerializerProvider() | ספק סדרה | זהו אביזר עבור המפעל, המשמש ליצירת מופעים על ידי קריאה DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory). |
| getSerializerProviderInstance() | ספק סדרה | זהו אביזר המשמש לבנייה והחזרה של מופע של SerializerProvider, שבו אנו יכולים להשתמש כדי לגשת לסריאלייזרים. |
| getSubtypeResolver() | SubtypeResolver | הוא משמש לגישה לפותר המשנה שבשימוש. |
| getTypeFactory() | TypeFactory | זהו אביזר המשמש כדי לקבל מופע של TypeFactory המוגדר כעת. |
| getVisibilityChecker() | VisibilityChecker | הוא משמש לגישה לבודק הנראות המוגדר כעת. |
| isEnabled(DeserializationFeature f) שיטות דומות:
| בוליאנית | השיטה isEnable() והווריאציות שלה משמשות כדי לבדוק אם תכונת JsonFactory, JsonGenerator, JsonParser, Mapper או Serialization נתונה מופעלת או לא. |
| mixInCount() | int | הוא משמש כדי לקבל את הספירה של mixIn. |
| קוֹרֵא() שיטות דומות:
| ObjectReader | שיטת reader() והווריאציות שלה הן שיטות היצרן המשמשות לבניית מופע של ObjectReader. בהתבסס על הדרישה, נוכל להעביר את גרסת הקידוד Base64 עבור נתונים בינאריים מקודדים ב-Base64, תכונות ברירת מחדל, תכונות מופעלות, ערכים הניתנים להזרקה, JsonNodeFactory לבניית עצי JSON. |
| readerFor(סוג מחלקה) | ObjectReader | זוהי שיטת יצרן המשמשת לבניית ObjectReader, המאפשרת פעולות קריאה או עדכון עבור מופעים מהסוג שצוין. |
| readerFor (סוג JavaType) | ObjectReader | זוהי שיטת יצרן המשמשת לבניית ObjectReader, המאפשרת פעולות קריאה או עדכון עבור מופעים של JavaType שצוין. |
| readerFor(סוג התייחסות סוג) | ObjectReader | זוהי שיטת יצרן המשמשת לבניית ObjectReader, המאפשרת פעולות קריאה או עדכון עבור מקרים של TypeReference נתון. |
| readerForUpdating(Object valueToUpdate) | ObjectReader | זוהי שיטת יצרן המשמשת לבניית ObjectReader המאפשרת פעולות עדכון עבור האובייקט הנתון. |
| readerWithView (תצוגת כיתה) | ObjectReader | זוהי שיטת מפעל המשמשת לבניית ObjectReader, מה שמאפשר ביטול בהמשכה של אובייקטים עם תצוגת JSON נתונה. |
readTree(byte[] content)
| JsonNode אוֹ ט | ה-readTree() והווריאציות שלו משמשות לביטול הסדרה של תוכן JSON כעץ המובע באמצעות קבוצה של מופעי JsonNode. |
| readValue(byte[] src, Class valueType) שיטות דומות
| ט אוֹ MappingIterator | ה-readValue() והווריאציות שלו משמשות לביטול הסדרת תוכן JSON
|
| readValues(JsonParser p, Class valueType) שיטות דומות:
| MappingIterator | ה-readValues() והווריאציות שלו משמשות לקריאת רצף האובייקטים מזרם המנתח. |
| registerModule(מודול מודול) שיטות דומות:
| ObjectMapper | ה-registerModule() והווריאציות שלו משמשות לרישום מודול בעל יכולת להרחיב את הפונקציונליות שסופק על ידי הממפר. |
| registerSubtypes(NamedType... types) | בָּטֵל | הוא משמש לרישום המחלקה הנתונה כתת-סוג. על ידי כך, הרזולוציה המבוססת על שם טיפוס יכולה לקשר טיפוסי-על לתת-סוגים. |
| setAnnotationIntrospector(AnnotationIntrospector ai) | ObjectMapper | הוא משמש כדי להגדיר את AnnotationIntrospector, המשמש את מופע הממפר הן לביצוע סריאליזציה והן לביטול בהמשכה. |
| setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) | ObjectMapper | הוא משמש כדי לשנות את המופע של AnnotationIntrospector המשמש את מופע הממפה הנוכחי עבור סידור וביטול בהמשכה. |
| setBase64Variant(Base64Variant v) | ObjectMapper | הוא משמש כדי להגדיר את ברירת המחדל של Base64Variant שישמש את ה-byte[] סדרות ו-de-serializers. |
| setConfig(DeserializationConfig config) | ObjectMapper | על מנת לבצע את העקיפה של אובייקט DeserializationConfig הבסיסי, אנו משתמשים בשיטה זו. |
| setConfig(SerializationConfig config) | ObjectMapper | על מנת לבצע את העקיפה של אובייקט SerializationConfig הבסיסי בעל הגדרות תצורה ספציפיות לסריאליזציה, אנו משתמשים בשיטה זו. |
| setDateFormat(DateFormat dateFormat) | ObjectMapper | הוא משמש כדי להגדיר את ברירת המחדל של DateFormat להשתמש בו בזמן סידור ערכי זמן כמחרוזות או ביטול סדרה מ-JSON Strings. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | ObjectMapper | הוא משמש כדי לציין את PrettyPrinter לשימוש בו כאשר 'ברירת מחדל יפה-הדפסה' מופעלת. |
| setDefaultTyping(TypeResolverBuilder typer) | ObjectMapper | הוא משמש כדי לאפשר הכללה אוטומטית של מידע סוג. |
| setHandlerInstantiator(HandlerInstantiator hi) | לְהִתְנַגֵד | הוא משמש כדי להגדיר את HandlerInstantiator לשימוש ליצירת מופעים של מטפלים. |
| setFilterProvider(FilterProvider filterProvider) | ObjectMapper | הוא משמש כדי להגדיר את המפה הנוכחי להשתמש ב-FilterProvider שצוין למיפוי מזהי מסנן למופעי סינון בפועל. |
| setInjectableValues(InjectableValues injectableValues) | ObjectMapper | הוא משמש להגדרת InjectableValues המשמש למציאת ערכים להזרקה. |
| setLocale(Local l) | ObjectMapper | הוא משמש לעקוף את מקום ברירת המחדל לשימוש עבור עיצוב. |
| setMixInResolver(ClassIntrospector.MixInResolver resolve) | ObjectMapper | אנו משתמשים בשיטה זו כדי לציין את הפותר הנתון כדי לאתר מחלקות שילוב לשימוש, תוך עקיפת מיפויים שנוספו ישירות. |
| setMixInAnnotations(Map | בָּטֵל | זוהי שיטה מופחתת להגדרת הערת ערבוב. |
| setNodeFactory(JsonNodeFactory f) | ObjectMapper | הוא משמש כדי לציין את JsonNodeFactory לשימוש לבניית צמתי עצים ברמת השורש. |
| setMixIns(Map | ObjectMapper | הוא משמש להגדרת הערות השילוב לשימוש להגדלת הערות שיש למחלקות הניתנות לעיבוד. |
| setPropertyInclusion(JsonInclude.Value incl) | ObjectMapper | הוא משמש להגדרת ברירת המחדל של אסטרטגיית הכללת המאפיינים של POJO עבור סדרה. |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | ObjectMapper | הוא משמש כדי להגדיר את אסטרטגיית שמות הנכסים המותאמת אישית לשימוש. |
| setSerializerFactory(SerializerFactory f) | ObjectMapper | הוא משמש כדי להגדיר את SerializerFactory הספציפי לשימוש עבור בניית (שעועית) סדרה. |
| setSerializerProvider(DefaultSerializerProvider p) | ObjectMapper | הוא משמש כדי להגדיר את מופע ה-'blueprint' SerializerProvider לשימוש בו כבסיס למופעי ספק בפועל לשימוש לטיפול בשמירת מטמון של מופעי JsonSerializer. |
| setSubtypeResolver(SubtypeResolver str) | ObjectMapper | הוא משמש כדי להגדיר את פותר המשנה המותאם אישית לשימוש. |
| setTimeZone(TimeZone tz) | ObjectMapper | הוא משמש לעקוף את ברירת המחדל של אזור הזמן לשימוש עבור עיצוב. |
| setTypeFactory(TypeFactory f) | ObjectMapper | הוא משמש לעקוף את מופע TypeFactory, המשמש את המפה הנוכחי. |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility)
| ObjectMapper | ה-setVisibility() והווריאציה שלו משמשות כדי להגדיר את VisibilityChecker המוגדר כעת. המופע המוחזר של ObjectMapper משמש כדי לבדוק אם ניתן לזהות אוטומטית את רכיב המאפיין הנתון או לא. |
| treeAsTokens(TreeNode n) | JsonParser | הוא משמש לבניית JsonParser מתוך ייצוג עץ JSON. |
| treeToValue(TreeNode n, Class valueType) | ט | הוא משמש לאגד את הנתונים שעץ JSON מכיל לסוג ערך מסוים. |
| גִרְסָה() | גִרְסָה | הוא משמש כדי לקבל את מידע הגרסה המאוחסן וקריאה מהצנצנת המכילה מחלקה זו. |
סוֹפֵר()
| ObjectWriter | ה-write() והווריאציות שלו משמשות לבניית ObjectWriter עם הגדרות ברירת מחדל, בהינתן וריאנט קידוד Base64 עבור נתונים בינאריים מקודדים ב-Base64, פרטי בריחה של תווים עבור פלט, תכונות ברירת מחדל, DateFormat, ספק מסנן, אובייקט סכימה ל-JsonGenerator המשמש לכתיבת תוכן, מדפסת יפה להזחה, או תכונה מופעלת. |
| writerFor(Class rootType) - | ObjectWriter | הוא משמש לבניית ObjectWriter להסדרת האובייקטים באמצעות סוג שורש שצוין במקום סוג הערך של זמן הריצה בפועל. |
| writerFor(JavaType rootType) | ObjectWriter | הוא משמש לבניית ObjectWriter להסדרת האובייקטים באמצעות סוג שורש שצוין במקום סוג הערך של זמן הריצה בפועל. |
| writerFor(TypeReference rootType) | ObjectWriter | הוא משמש לבניית ObjectWriter להסדרת האובייקטים באמצעות סוג שורש שצוין במקום סוג הערך של זמן הריצה בפועל. |
| writerWithDefaultPrettyPrinter() | ObjectWriter | זוהי שיטת יצרן המשמשת לבניית ObjectWriter להצגה בסידרה של האובייקטים באמצעות מדפסת ברירת המחדל היפה להזחה. |
writerWithType(Class rootType)
| ObjectWriter | שיטות אלו מופחתות, ובמקום אותן, אנו משתמשים בשיטת writerFor(TypeReference). |
| writerWithView(Class serializationView) | ObjectWriter | זוהי שיטה של יצרן המשמשת לבניית ObjectWriter ליצירת אובייקטים בסידרה באמצעות JSON View שצוין. |
| writeTree(JsonGenerator jgen, JsonNode rootNode) | בָּטֵל | הוא משמש להצגה בסידרה של עץ ה-JSON המסופק על ידי שימוש ב-JsonGenerator הנתון. |
| writeValue(קובץ resultFile, ערך אובייקט) | בָּטֵל | הוא משמש להסדרת ערך Java כפלט JSON ולכתוב אותו לנתון קוֹבֶץ. |
| writeValue(JsonGenerator g, ערך אובייקט). | בָּטֵל | הוא משמש להסדרת ערכי Java כפלט JSON באמצעות הנתון JsonGenerator. |
| writeValue(OutputStream out, Object value) | בָּטֵל | הוא משמש להסדרת ערך Java כפלט JSON באמצעות הנתון OutputStream. |
| writeValue(Writer w, Object value) | בָּטֵל | הוא משמש להסדרת ערכי Java כפלט JSON באמצעות הנתון סוֹפֵר. |
| writeValueAsBytes(ערך אובייקט) | בייט[] | הוא משמש להסדרת ערכי Java כמערך בתים. |
| writeValueAsString(ערך אובייקט) | חוּט | הוא משמש להסדרת ערכי Java כמחרוזת. |
JacksonExample.java
//import required classes and package if any package javaTpoint.Jackson; import java.io.IOException; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; //create class JacksonExample to understand implementation of Jackson public class JacksonExample { // main() method start public static void main(String args[]){ // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create a JSON string of employee details to deserilized object String stdString = '{
'students' : [
{
'stdId':'001',
'course':'MCA','+'
'firstName':'Nicholas',
'lastName':'Clemens',
'preferredFullName':'Nicholas Clemens','+'
'enrol':'S010',
'region':'indian',
'phoneNumber':'408-1234567',
'emailAddress''+':'[email protected]'
},
{
'stdId':'002',
'course':'BCA','+'
'firstName':'Sharon',
'lastName':'Lorenz',
'preferredFullName':'Sharon Lorenz','+'
'enrol':'S011',
'region':'indian',
'phoneNumber':'408-1111111',
'emailAddress''+':'[email protected]'
},
{
'stdId':'003',
'course':'Btech','+'
'firstName':'Brittany',
'lastName':'Hart',
'preferredFullName':'Brittany Hart',
''+'enrol':'S012',
'region':'indian',
'phoneNumber':'408-2222222',
'emailAddress':'[email protected]'
}
]
}'; try{ // use ObjectMapper for mapping JSON to Student Students students = mapper.readValue(stdString, Students.class); // print students System.out.println(students); // serialize students into json string stdString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(students); System.out.println(stdString); }catch (JsonParseException e) { e.printStackTrace(); }catch (JsonMappingException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } } } //create Students class class Students { public List students; // getter and setter public List getStudent() { return students; } public void setStudent(List students) { this.students = students; } } class Student { // declare variables private String stdId; private String course; private String firstName; private String lastName; private String preferredFullName; private String enrol; private String region; private String phoneNumber; private String emailAddress; public Student(){ } // getter/setters for all variables public String getStdId() { return stdId; } public void setStdId(String stdId) { this.stdId = stdId; } public String getCourse() { return course; } public void getCourse(String course) { this.course = course; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getPreferredFullName() { return preferredFullName; } public void setPreferredFullName(String preferredFullName) { this.preferredFullName = preferredFullName; } public String getEnrol() { return enrol; } public void setEnrol(String enrol) { this.enrol = enrol; } public String getRegion() { return region; } public void setRegion(String region) { this.region = region; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getEmailAddress() { return emailAddress; } public void setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; } public String toString(){ return 'Employee [ Student Id: '+stdId+', Course: '+course+ '' + ', First Name: '+firstName+ ', Last Name: '+lastName+ '' + ', Name: '+preferredFullName+ ', Enrol No: '+enrol+ '' + ', Region: '+region+ ', Phone Number: '+phoneNumber+ '' + ', Email Address: '+emailAddress+ ' ]'; } } תְפוּקָה: