ما هو JSON؟
JSON (JavaScript Object Notation) صيغة نصية للبيانات المهيكلة تتكون من كائنات ومصفوفات ونصوص وأرقام وقيم منطقية وnull. يعرّفها المعياران RFC 8259 وECMA-404، وهي مستقلة عن لغة البرمجة، وتُعدّ الصيغة الافتراضية لواجهات الويب لأنها مضغوطة وقابلة للقراءة وسهلة التحليل.
كيفية استخدام مرتّب مفاتيح JSON
- الصق JSON الذي تريد توحيد ترتيب مفاتيحه.
- اختر A → Z أو Z → A ونمط المسافة البادئة.
- انسخ النتيجة القياسية إلى ملف الإعدادات أو بيانات الاختبار الثابتة (fixture) أو اللقطة (snapshot).
مزايا مرتّب مفاتيح JSON
- ترتيب مفاتيح الكائنات تصاعدياً أو تنازلياً في جميع مستويات التداخل
- الحفاظ على ترتيب المصفوفات دون تغيير
- ترتيب أبجدي لا يفرّق بين الأحرف الكبيرة والصغيرة، بقواعد ثابتة مهما كانت لغة المتصفح
- اختيار المسافة البادئة للناتج، بما في ذلك الإخراج المصغّر
- ناتج فوري مع إمكانية النسخ والتنزيل
مثال على مرتّب مفاتيح JSON
توحيد صيغة ملف بيانات اختبار ثابتة (fixture)
الإدخال:
{"zeta":1,"alpha":{"y":true,"x":false}}النتيجة:
{
"alpha": {
"x": false,
"y": true
},
"zeta": 1
}الأسئلة الشائعة حول مرتّب مفاتيح JSON
هل تُرتَّب الكائنات المتداخلة أيضاً؟
نعم. تُرتَّب المفاتيح في كل مستوى من مستويات التداخل، بما في ذلك الكائنات الموجودة داخل المصفوفات.
هل يغيّر الترتيب المصفوفات؟
لا. ترتيب المصفوفات يحمل معنى، لذا تحتفظ العناصر بمواضعها؛ ويُعاد ترتيب مفاتيح الكائنات فقط.
لماذا نرتّب المفاتيح أصلاً؟
المفاتيح المرتبة تعطي تمثيلاً قياسياً. فيصبح مستندان لهما المحتوى نفسه متطابقين بايتاً ببايت، وهو أمر مثالي لاختبارات اللقطات ومفاتيح التخزين المؤقت وملفات الإعدادات ومقارنات git النظيفة.
كيف يُحدَّد الترتيب؟
تُقارَن المفاتيح أبجدياً دون تمييز بين الأحرف الكبيرة والصغيرة وفق قواعد ترتيب ثابتة (الإنجليزية) لا تتبع لغة متصفحك، فلا يتغيّر الترتيب بتغيّر لغة الجهاز، ويقع "Beta" بين "alpha" و"gamma". والخيار Z → A هو العكس التام لذلك. أما المفاتيح المكوّنة من أرقام فتُقارَن كنص، لذا يأتي "10" قبل "9".
المراجع
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Formatقواعد JSON: الكائنات والمصفوفات والنصوص والأرقام والقيم الثلاث الثابتة، وUTF-8 كترميز للتبادل.
- ECMA-404: The JSON Data Interchange Syntaxصياغة JSON كمعيار من Ecma، متوافقة مع RFC 8259.
- Introducing JSONالوصف الأصلي المختصر لـ JSON مع مخططاته النحوية.