תחביר
1. מבנה בסיסי
-
תוכן הקובץ מתחיל ומסתיים כאובייקט (
{}) מוקף בסוגריים מסולסליםobject. -
האובייקט מורכב מזוגות של שם תכונה (key) וערך (value).
-
שם התכונה והערך מופרדים באמצעות נקודתיים (
:) או שווה (=).
2. הערה
-
ההערה מתחילה ב-
//או ב-#ונכתבת בשורה אחת. -
ההערה תקפה עד לסוף השורה.
-
לא נתמכת הערה המשתרעת על פני מספר שורות, על מנת להוסיף הערה במספר שורות יש להוסיף
//או#בכל שורה.
3. אובייקט (Object)
-
האובייקט מוקף במעוגלונים
{}ומכיל זוגות מפתח-ערך. -
ניתן להשתמש בסימן
:או=בין המפתח לערך. ניתן להשתמש בערבוביה בשני הסימנים. -
כל תכונה מופרדת באמצעות פסיק(
,). -
ניתן לקנן אובייקטים נוספים בתוך האובייקט.
דוגמה:
{
status: "success",
code = 200,
user = { id: 123, name: "John Doe" }
}
4. מערך (Array)
-
המערך מוקף בסוגריים מרובעים
[]והאלמנטים מופרדים בפסיקים (,). -
האלמנטים במערך יכולים להיות אובייקטים, מחרוזות, מספרים ועוד סוגי נתונים שונים.
-
ב-WSON מערך יכול להיכלל בתוך אובייקט, ויכול להיות מקונן עם מערכים או אובייקטים אחרים בתוכו.
דוגמה:
tasks: [
{ task_id: 1, title: "Complete project report" },
{ task_id: 2, title: "Review team feedback" }
]
5. זוג מפתח-ערך (Key-Value Pair)
-
שם התכונה מורכב ממחרוזת, ללא רווח ליד הערך המופיע לאחר
:או=. -
סוגי הערכים כוללים מחרוזות, מספרים, בוליאנים, אובייקטים, מערכים וכדומה.
-
המחרוזת מוקפת במרכאות ״"״.
-
המספרים משתמשים ללא מירכאות, ויכולים להיות שלמים או שברים.
דוגמה:
name: "John Doe"
age = 25
6. סוגי נתונים (Data Types)
- מחרוזת (String): טקסט מוקף במירכאות
".
"hello world"
- מספר (Number): ערכים שלמים או עשרוניים.
42
3.14
- בוליאן (Boolean): משתמש בערך
trueאוfalse.
is_active = true
- אובייקט (Object): זוגות מפתח-ערך מוקפים במעוגלונים
{}. - מערך (Array): רשימת אלמנטים מוקפים בסוגריים מרובעים
[].
7. הסבר על דוגמה
{
// קוד סטטוס ופרטי הודעה
status: "success",
code: 200,
message: "Data retrieved successfully",
user = {
id = 123,
name: "John Doe",
email: "john@example.com",
age: 25 # גיל המשתמש
},
tasks: [
{
task_id: 1,
title: "Complete project report",
status: "in-progress",
due_date: "2024-10-15"
},
{
task_id: 2,
title: "Review team feedback",
status: "pending",
due_date: "2024-10-20"
}
]
}
