ورقة الغش بتنسيق TOON
إذا شعرت يومًا أن JSON مطول للغاية (كل تلك الأقواس!) ولكن YAML "سحرية" إلى حد ما ولا يمكن التنبؤ بها، فقد تقع في حب TOON. يحقق هذا التنسيق توازنًا فريدًا بين سهولة القراءة البشرية وسرعة التحليل الآلي. لقد تم تصميمه ليكون كثيفًا وصريحًا وسريع التحليل بشكل لا يصدق.
سواء كنت تقوم بترحيل البيانات أو تحاول فقط تصحيح أخطاء ملف التكوين، فإن ورقة الغش هذه تغطي بناء الجملة الأساسي الذي تحتاج إلى معرفته.
الفلسفة: ضوضاء أقل، بيانات أكثر
أول شيء ستلاحظه هو أن TOON يشبه إلى حد كبير YAML، لكنه يتصرف بشكل صارم مثل JSON. فهو يتخلص من قوسي الفتح والإغلاق لصالح المسافة البادئة والأسطر الجديدة، مما يجعل بياناتك تبدو أكثر نظافة على الفور.
الكائنات والتداخل
في JSON، أنت معتاد على تغليف كل شيء بأقواس متعرجة. في TOON، يتم تضمين البنية عن طريق المسافة البادئة.
جسون:
{
"المشروع": {
"البيانات الوصفية": {
"الاسم": "ألفا سنتوري"،
"الحالة": "نشط"
},
"المعالم": [
{
"المرحلة": "التصميم"،
"الأولوية": 1
},
{
"المرحلة": "الاختبار"،
"الأولوية": 2
}
]
}
}
تون:
المشروع:
البيانات الوصفية:
الاسم: ألفا سنتوري
الحالة: نشطة
المعالم[2]{المرحلة،الأولوية}:
التصميم،1
اختبار،2
لاحظ أن المفاتيح لا تتطلب علامات اقتباس إلا إذا كانت تحتوي على أحرف خاصة، ويكون التسلسل الهرمي واضحًا بصريًا.
قوة المصفوفات
هذا هو المكان الذي يختلف فيه TOON حقًا عن التنسيقات الأخرى. يتطلب TOON منك الإعلان عن طول المصفوفة في المفتاح نفسه. قد يبدو هذا غريبًا في البداية، لكنه يسمح للمحلل بتخصيص الذاكرة مسبقًا، مما يجعلها سريعة للغاية.
المصفوفات البدائية
للحصول على قوائم بسيطة من السلاسل أو الأرقام، يستخدم TOON تركيبًا مدمجًا مفصولاً بفواصل.
** النحو: **
المفتاح [الطول]: العنصر 1، العنصر 2، العنصر 3
إذا كان لديك مصفوفة جذر (الملف بأكمله مجرد قائمة)، فسيبدو كما يلي:
المصفوفات الجدولية (الميزة القاتلة)
هذه هي الميزة التي عادة ما تفوز بالمطورين. إذا كان لديك مجموعة من الكائنات التي تشترك جميعها في نفس المفاتيح (مثل الصفوف في قاعدة البيانات)، يتيح لك TOON تحديد المخطط once في الرأس ثم سرد القيم فقط. يؤدي هذا إلى إزالة كميات هائلة من التكرار الموجود في JSON.
** النحو: **
المفتاح[الصفوف]{col1,col2}:
جسون:
{
"المخزون": [
{
"sku": "KB-99"،
"الكمية": 50،
"الممر": 4،
"إعادة الترتيب": خطأ
},
{
"sku": "MS-12"،
"الكمية": 12،
"الممر": 7،
"إعادة الترتيب": صحيح
},
{
"sku": "MN-44"،
"الكمية": 8،
"الممر": 2،
"إعادة الترتيب": صحيح
}
]
}
تون:
المخزون [3] {sku، الكمية، الممر، إعادة الطلب}:
كيلو بايت-99,50,4,خطأ
MS-12،12،7، صحيح
MN-44,8,2,صحيح
يجعل نهج "CSV-inside-YAML" مجموعات البيانات الكبيرة سهلة القراءة وصغيرة الحجم بشكل لا يصدق.
المصفوفات المختلطة والمتداخلة
في بعض الأحيان لا تكون البيانات موحدة. إذا كانت صفيفتك تحتوي على أنواع مختلفة من البيانات (أرقام ممزوجة بالكائنات)، أو إذا كانت تحتوي على كائنات متداخلة معقدة، فإن TOON يعود إلى بناء جملة نمط نقطي باستخدام الواصلات.
يمكنك حتى أن يكون لديك صفائف داخل صفائف. لاحظ كيف تعلن المصفوفة الداخلية أيضًا عن طولها:
الاقتباس: متى تستخدمه
أحد أجمل الأشياء في TOON هو أنك نادرًا ما تحتاج إلى عروض أسعار. يمكنك كتابة Hello 世界 👋 دون تغليفها بـ "". ومع ذلك، نظرًا لأن TOON يحاول استنتاج الأنواع (الأرقام، والقيم المنطقية)، فهناك قواعد محددة بشأن متى يجب عليك استخدام علامات الاقتباس.
قائمة "يجب الاقتباس".
يجب عليك لف السلسلة بين علامتي اقتباس مزدوجتين "" إذا:
- يبدو كرقم أو منطقي: إذا كنت تريد السلسلة
"123"أو"true"، فاقتبسها. وبخلاف ذلك، فإنها تصبح الرقم123والرقم المنطقيصحيح.
- تحتوي على محددات: إذا كانت السلسلة الخاصة بك تحتوي على فاصلة
،(أو أيًا كان المحدد النشط الخاص بك)، فاقتبسها.
- تحتوي على حواف بيضاء: تتطلب المسافات البادئة أو اللاحقة علامات اقتباس.
- يحتوي على أحرف خاصة: أحرف مثل
:،"،\،[،]،{،}.
- إنها فارغة: يتم تمثيل سلسلة فارغة كـ
"".
أمثلة:
تسلسل الهروب
اجعل الأمر بسيطًا. يتعرف TOON فقط على خمسة تسلسلات هروب داخل السلاسل. أي شيء آخر غير صالح.
\\(خط مائل عكسي)
\"(اقتباس مزدوج)
\n(السطر الجديد)
\r(سطر النقل)
\t(علامة التبويب)
الرؤوس والمحددات المتقدمة
ماذا لو كانت بياناتك مليئة بالفواصل؟ لا تريد أن تقتبس كل حقل. يتيح لك TOON تغيير المحدد في رأس المصفوفة.
يمكنك استخدام Tab أو Pipe (|) عن طريق وضعها داخل الأقواس أو الأقواس.
مثال محدد الأنابيب:
من خلال إضافة | في الرأس، يعرف المحلل اللغوي أنه يبحث عن الأنابيب بدلاً من الفواصل، مما يحافظ على بناء الجملة نظيفًا.
طي المفتاح
إذا كان لديك تداخل عميق ولكن مسارًا واحدًا فقط للبيانات، فلن تحتاج إلى وضع مسافة بادئة خمس مرات. يمكنك استخدام التدوين النقطي (مفتاح الطي) لتسوية الهيكل الخاص بك.
التداخل القياسي:
المستخدم:
الملف الشخصي:
الإعدادات:
الإخطارات:
البريد الإلكتروني: صحيح
الرسائل القصيرة: كاذبة
مطوية (منظف):
user.profile.settings.notifications:
البريد الإلكتروني: صحيح
الرسائل القصيرة: كاذبة
مرجع النوع السريع
يقوم TOON بتعيين أنواع JSON مباشرة، ولكنه يتعامل مع حالات الحافة الخاصة بـ JavaScript بأمان لضمان إخراج صالح.
- الأرقام: مخزنة ككسور عشرية أساسية.
1.0يصبح1.
- Infinity / NaN: تصبح هذه
فارغة(نظرًا لأن JSON لا يدعمها).
- التواريخ: تم تحويلها إلى سلاسل ISO مقتبسة.
- وظائف/غير محددة: تم تحويلها إلى
فارغة.
- الكائنات الفارغة: ممثلة على أنها لا شيء (مخرجات فارغة).
- المصفوفات الفارغة: ممثلة كـ
مفتاح[0]:.
TOON هو تنسيق يكافئ الدقة. قد يستغرق الأمر بعض الوقت للتعود على حساب عناصر المصفوفة الخاصة بك، ولكن المردود في سهولة القراءة وحجم الملف يستحق كل هذا الجهد. ترميز سعيد!