json logo

היכרות עם JSON


العربية Български 中文 Český Dansk Nederlands English Esperanto Français Deutsch Ελληνικά עברית Magyar Indonesia Italiano 日本
한국어 فارسی Norsk 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 ‏(‎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) יכול להיות מוכנס בין כל זוג סמלים. מלבד מספר פרטי קידוד, הייחודיים לשפה.

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' 'f' 'n' 'r' 't' 'u' hex hex hex hex

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

number integer fraction exponent

integer digit onenine digits '-' digit '-' onenine digits

digits digit digit digits

digit '0' onenine

onenine '1' . '9'

fraction "" '.' digits

exponent "" 'E' sign digits 'e' sign digits

sign "" '+' '-'

ws "" '0020' ws '000A' ws '000D' ws '0009' ws