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

قواعد

١. هيكل أساسي

  • يبدأ وينتهي محتوى الملف ككائن ({}) موضوع بين الأقواس object.

  • يتكون الكائن من أزواج سمات الاسم (المفتاح) والقيمة.

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

٢. تعليق

  • تبدأ التعليقات بـ // أو # وتكتب على مستوى السطر الواحد.

  • يمتد التعليق حتى نهاية السطر الذي يظهر فيه.

  • لا تدعم التعليقات متعددة الأسطر بشكل مباشر، لذلك إذا كنت تريد كتابة تعليق يمتد لعدة أسطر، يجب إضافة // أو # في بداية كل سطر.

٣. كائن (Object)

  • يُحاط الكائن بأقواس {} ويحتوي على أزواج مفتاح-قيمة.

  • يمكن استخدام الرمز : أو = بين المفتاح والقيمة. يمكن استخدام الرمزين بشكل متبادل.

  • يتم فصل كل سمة بفاصلة (,).

  • يمكن تضمين كائنات أخرى داخل الكائن.

مثال:

{
status: "success",
code = 200,
user = { id: 123, name: "John Doe" }
}

٤. مصفوفة (Array)

  • المصفوفة محاطة بأقواس [] وتُفصل العناصر بفواصل (,).

  • يمكن أن تكون عناصر المصفوفة متنوعة الأنواع، مثل الكائنات، السلاسل النصية، أو الأرقام.

  • في WSON، يمكن تضمين المصفوفات داخل الكائنات، كما يمكن تداخل مصفوفات أو كائنات أخرى داخل المصفوفة.

مثال:

tasks: [
{ task_id: 1, title: "Complete project report" },
{ task_id: 2, title: "Review team feedback" }
]

٥. زوج المفتاح-القيمة (Key-Value Pair)

  • يتكون اسم السمة من سلسلة نصية ويتم وضع القيمة مباشرة بعد : أو = بدون مسافات.

  • تشمل أنواع القيم: سلاسل نصية، أرقام، بوليانات، كائنات، ومصفوفات.

  • تحاط السلاسل النصية بعلامات اقتباس مزدوجة .

  • تستخدم الأرقام بدون علامات اقتباس، ويمكن أن تكون في شكل أعداد صحيحة أو أعداد عشرية.

مثال:

name: "John Doe"
age = 25

٦. أنواع البيانات (Data Types)

  • سلسلة نصية (String): نص محاط بعلامات اقتباس مزدوجة ".
"hello world"
  • عدد (Number): قيمة عددية صحيحة أو عشرية.
42
3.14
  • بوليان (Boolean): يستخدم القيم true أو false.
is_active = true
  • كائن (Object): زوج مفتاح-قيمة محاط بأقواس {}.
  • مصفوفة (Array): قائمة عناصر محاطة بأقواس [].

٧. وصف المثال

{
// رمز الحالة ومعلومات الرسالة
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"
}
]
}