json logo

היכרות עם JSON


العربية Български 中文 Český Dansk Nederlands English Esperanto Français Deutsch Ελληνικά עברית Magyar Indonesia
Italiano 日本 한국어 فارسی Polski Português Română Русский Српско-хрватски Slovenščina Español Svenska Türkçe Tiếng Việt

ECMA-404 The JSON Data Interchange Standard.

json
    element

value
    object
    array
    string
    number
    "true"
    "false"
    "null"

object
    '{' ws '}'
    '{' members '}'

members
    member
    member ',' members

member
    ws string ws ':' element

array
    '[' ws ']'
    '[' elements ']'

elements
    element
    element ',' elements

element
    ws value ws

string
    '"' characters '"'
characters
    ""
    character characters
character
    '0020' . '10ffff' - '"' - '\'
    '\' escape
escape
    '"'
    '\'
    '/'
    'b'
    'n'
    'r'
    't'
    'u' hex hex hex hex

hex
    digit
    'A' . 'F'
    'a' . 'f'

number
    int frac exp

int
    digit
    onenine digits
    '-' digit
    '-' onenine digits

digits
    digit
    digit digits

digit
    '0'
    onenine

onenine
    '1' . '9'

frac
    ""
    '.' digits

exp
    ""
    'E' sign digits
    'e' sign digits

sign
    ""
    '+'
    '-'

ws
    ""
    '0009' ws
    '000a' ws
    '000d' ws
    '0020' ws

JSON ‏(‎JavaScript Object Notation - ציון אובייקטים ב-JavaScript) הינו מבנה קל משקל להחלפת מידע, קל עבור בני אנוש לקרוא ולכתוב, קל לפינוח ע"י מכונות. הוא מבוסס על תת-מערכת של שפת התכנות Javascript, סטנדרט ה-ECMA-262 גרסא שלישית - דצמבר 1999. JSON הינו מבנה כתב חופשי לחלוטין משפה, אבל משתמש במוסכמות אשר מוכרת לתכנתים של משפחת שפות C, הכוללת את C, C++, C#, Java, Javascript, Perl, Python ועוד רבים נוספים. תכונות אלו עושות את JSON לשפה אידיאלית עבור החלפת מידע.

JSON בנוי על שני מבנים:

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

ב-JSON הם באים לידי ביטוי כך:

אובייקט הוא קבוצה לא מסודרת של זוגות שם/ערך. אובייקט מתחיל עם { (סוגריים מסולסלים שמאליים) ומסתיים עם } (סוגריים מסולסלים ימניים). לאחר שם מופיעים : (נקודותיים) שלאחריהם הערך, כאשר כל זוג של שם/ערך מופרד ע"י , (פסיק).

מערך הינו אוסף מסודר של ערכים. מערך מתחיל עם [ (סוגריים רבועיים שמאליים) ומסתיים עם ] (סוגריים רבועיים ימניים). הערכים מופרדים ע"י , (פסיק).

ערך יכול להיות מחרוזת במרכאות כפולות, או מספר, או true או false או null, או אובייקט או מערך. מבנים אלו יכולים להיות מקוננים (Nested).

מחרוזת היא אוסף של תווי יוניקוד (בעלי אורך של אפס או יותר תווים), אשר עטופים במרכאות כפולות, התו \ (לוכסן אחורי) מבטל את התווים הללו. תו מיוצג ע"י מחרוזת בעלת תו אחד. מחרוזת דומה מאוד למחרוזת של שפת C או Java.

מספר דומה מאוד למספר של שפת C או Java, מלבד שהמבנה האוקטלי וההקסדצימלי אינם בשימוש.

סימן "לבן" (Whitespace) יכול להיות מוכנס בין כל זוג סמלים. מלבד מספר פרטי קידוד, הייחודיים לשפה.