- docx (פורמט Microsoft Word);
- pdf (פורמט Adobe);
- mobi (בשימוש נפוץ במכשירי אמזון קינדל);
- ועוד הרבה יותר (ePub, djvu, fb2...).
JSON
סימון אובייקט JavaScript. אתה כבר קצת מכיר אותו! דיברנו על זה בהרצאה הזו , והסתכלנו על סדרה ב-JSON כאן . יש לזה סיבה. אובייקטי Java שהומרו ל-JSON למעשה נראים בדיוק כמו אובייקטי JavaScript. אתה לא צריך לדעת JavaScript כדי להבין את המשמעות של האובייקט שלנו:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
אין צורך לעבור חפץ אחד. JSON יכול להכיל גם מערך של אובייקטים:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
מכיוון ש-JSON הוא אובייקט JavaScript, הוא תומך בפורמטים הבאים של נתוני JavaScript:
- מחרוזות;
- מספרים (מספר);
- חפצים (חפץ);
- מערכים (מערך);
- ערכים בוליאניים (נכון ושקרי);
- ריק.
-
פורמט קריא לאדם. זהו יתרון ברור אם משתמש הקצה שלך הוא אנושי. לדוגמה, השרת שלך מאחסן מסד נתונים עם לוחות זמנים של טיסות. לקוח אנושי מבקש נתונים ממסד נתונים זה באמצעות יישום אינטרנט כשהוא יושב בבית ליד המחשב. מכיוון שאתה צריך לספק את הנתונים בפורמט שהוא יכול להבין, JSON הוא פתרון מצוין.
-
פַּשְׁטוּת. אפשר לומר שזה אלמנטרי :) למעלה הבאנו דוגמה לשני קבצי JSON. וגם אם מעולם לא שמעתם על קיומו של JavaScript (שלא לדבר על האובייקטים שלו), תוכלו להבין בקלות איזה סוג של אובייקטים מתוארים שם.
כל התיעוד של JSON הוא דף אינטרנט אחד עם כמה תמונות. -
נָפוֹץ. JavaScript היא שפת החזית הדומיננטית, והיא מכתיבה את תנאיה. שימוש ב-JSON הוא חובה. לכן, מספר עצום של שירותי אינטרנט משתמשים ב-JSON כפורמט להחלפת נתונים. כל IDE מודרני תומך בפורמט JSON (כולל Intellij IDEA). חבורה של ספריות נכתבו לעבודה עם JSON עבור כל שפות התכנות האפשריות.
YAML
בתחילת קיומה, היא עמדה בשם Yet Another Markup Language - "שפת סימון נוספת". בזמנו הוא מוצב כמתחרה ל-XML. כעת, לאחר חלוף הזמן, זה מייצג "YAML Ain't Markup Language" ("YAML היא לא שפת סימון"). איך הוא? בואו נדמיין שאנחנו צריכים ליצור 3 כיתות דמויות למשחק המחשב שלנו: לוחם, קוסם וגנב. יהיו להם המאפיינים הבאים: כוח, זריזות, סיבולת ומערכת נשק. כך ייראה קובץ ה-YAML שלנו עם תיאורי כיתות:classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
לקובץ YAML יש מבנה עץ: חלק מהאלמנטים מקוננים בתוך אחרים. אנו יכולים לשלוט בקינון על ידי שימוש במספר מסוים של רווחים לציון כל רמה. אילו יתרונות יש לפורמט YAML?
-
קריא אדם. שוב, גם אם אתה רואה קובץ yaml ללא תיאור, אתה יכול בקלות להבין אילו אובייקטים מתוארים שם. YAML הוא עד כמה אנושי קריא שהדף הראשי של yaml.org הוא קובץ yaml רגיל :)
-
צְפִיפוּת. מבנה הקובץ נוצר על ידי רווחים: אין צורך להשתמש בסוגריים או במרכאות.
-
תמיכה במבני נתונים מקוריים בשפות תכנות. יתרון עצום של YAML על פני JSON ופורמטים רבים אחרים הוא שהוא תומך במבני נתונים שונים. ביניהם:
-
!!map
אוסף לא מסודר של צמדי מפתח:ערך ללא אפשרות של כפילויות; -
!!omap
רצף מסודר של צמדי מפתח:ערך ללא אפשרות של כפילויות; -
!!זוגות:
רצף מסודר של זוגות מפתח:ערך עם אפשרות של כפילויות; - !!קבע
רצף לא מסודר של ערכים שאינם שווים זה לזה; - !!seq
רצף של ערכים שרירותיים;
חלק מהמבנים הללו יהיו מוכרים לכם מג'אווה! :) הודות לתכונה זו, אתה יכול לסידור מבני נתונים שונים משפות תכנות לפורמט YAML.
-
-
יכולת שימוש בעוגן ובכינוי
תרגום המילים "עוגן" ו"כינוי" - "עוגן" ו"שם בדוי". באופן עקרוני, הוא מתאר די במדויק את המהות של מונחים אלה ב-YAML.
הם מאפשרים לזהות אלמנט בקובץ yaml, ולהתייחס אליו בשאר הקובץ אם הוא מתרחש שוב ושוב. עוגן נוצר באמצעות הסמל
&
והכינוי נוצר באמצעות*
.נניח שיש לנו קובץ עם תיאורים של ספריו של ליאו טולסטוי. כדי להימנע מכתיבת שם המחבר באופן ידני בכל פעם, פשוט ניצור עוגן "אריה" ונפנה אליו באמצעות כינוי כשנצטרך אותו:
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
כאשר אנו קוראים את הקובץ הזה עם מנתח כלשהו, הערך "ליאו טולסטוי" יוחלף במקומות הנכונים במקום הכינוי שלנו.
- אתה יכול להטמיע נתונים בפורמטים אחרים ב-YAML. לדוגמה, JSON:
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
פורמטים אחרים של סדרה
XML
פורמט זה מבוסס על מה שנקרא עץ התגים.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
כל אלמנט מורכב מתג פתיחה וסגירה (<> ו</>). לכל אלמנט יכולים להיות אלמנטים מקוננים. XML הוא פורמט נפוץ, לא נחות מ-JSON ו-YAML (אם מדברים על שימוש בפרויקטים אמיתיים). יש לנו הרצאה נפרדת בנושא XML .
BSON (JSON בינארי)
כפי ששמו מרמז, הוא דומה מאוד ל-JSON, אך אינו קריא לאדם ופועל על נתונים בפורמט בינארי. זה עושה את זה מאוד נוח לאחסון והעברת תמונות וקבצים מצורפים אחרים. בנוסף, BSON תומך בכמה סוגי נתונים שאינם זמינים ב-JSON. לדוגמה, אתה יכול לכתוב תאריך (בפורמט של אלפיות שנייה) או אפילו חתיכת קוד JavaScript לתוך קובץ BSON. מסד הנתונים הפופולרי NoSQL MongoDB מאחסן מידע בפורמט BSON.פרוטוקול מבוסס מיקום
במצבים מסוימים, עלינו להפחית באופן דרמטי את כמות הנתונים המועברים (למשל, אם יש הרבה נתונים וצריך להפחית את העומס). במצב זה, אנו יכולים להשתמש בפרוטוקול מבוסס מיקום , כלומר להעביר ערכי פרמטרים ללא שמות הפרמטרים עצמם."Leo Tolstoy" | "Anna Karenina" | 1873
נתונים בפורמט זה תופסים הרבה פחות מקום מקובץ JSON מלא. כמובן, יש עוד פורמטים להסדרה, אבל לא צריך להכיר את כולם כרגע :) כדאי להכיר את הפורמטים שהם כיום הסטנדרט בתעשייה לפיתוח אפליקציות, ולזכור את היתרונות וההבדלים ביניהם. . וההרצאה שלנו הגיעה לסיומה :) אל תשכח לפתור כמה בעיות היום! נתראה שוב! :)
GO TO FULL VERSION