انتقل إلى المحتوى الرئيسي

القواعد

1. الهيكل الأساسي

  • يبدأ وينتهي محتوى الملف بكائن محاط بأقواس معقفة {}.

  • يتكون الكائن من أزواج من المفتاح والقيمة، حيث أن المفتاح هو اسم السمة والقيمة هي قيمة السمة.

  • يتم فصل المفتاح والقيمة باستخدام النقطتين (:) أو علامة المساواة (=).

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: "[email protected]",
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"
}
]
}