أداة تنسيق JSON والتحقق منه
ألصِق JSON لتنسيقه بإزاحة 2 أو 4 أو 8 مسافات، أو لضغطه في سطر واحد، أو لمجرد التحقق من أنه يُحلَّل بنجاح. يعود JSON الصالح ملونًا مع حجمه قبل التنسيق وبعده، ويعود JSON غير الصالح برسالة الخطأ الخاصة بمتصفحك. مجاني، دون تسجيل، ولا يغادر ما تلصقه متصفحك أبدًا.
0 سطر · 0 بايت
كيفية استخدام أداة تنسيق JSON
- 1. ألصِق JSON. أي شيء، من قيمة واحدة إلى استجابة واجهة برمجية كبيرة. ويحسب المربع عدد الأسطر والبايتات أثناء الكتابة.
- 2. اختر الإزاحة. اختر 2 أو 4 أو 8 مسافات. ولا يؤثر هذا الإعداد إلا في «تنسيق».
- 3. اختر إجراءً. تنسيق يجمِّل النص، وتصغير يحذف كل مسافة وفاصل سطر اختياري، والتحقق فقط يفحص الصياغة ويعرض حكمًا بالأخضر أو الأحمر دون إنتاج ناتج.
- 4. اقرأ النتيجة. يُعرض JSON الصالح ملونًا (المفاتيح بالبنفسجي، والنصوص بالأخضر، والأرقام بالأزرق، وtrue وfalse بالبرتقالي، وnull بالأحمر) مع حجم الإدخال وحجم الناتج ونسبة التغيُّر. أما JSON غير الصالح فيعرض رسالة المحلِّل بدلًا من ذلك. ونسخ الناتج ينسخ ما تراه.
ما الذي يُعدّ JSON صالحًا
تمرِّر الأداة نصك إلى المحلِّل الصارم لـ JSON في JavaScript، فيقبل ما تنص عليه المواصفة، RFC 8259 (وهي القواعد نفسها في ECMA-404)، ولا يقبل ما هو أكثر من ذلك. وهو أشد صرامة من كائن JavaScript الحرفي، ولهذا يفشل هنا أحيانًا كودٌ يعمل في برنامج نصي. وفيما يلي أكثر الأسباب شيوعًا:
| الخطأ | المثال | الإصلاح |
|---|---|---|
| فاصلة زائدة في النهاية | {"a": 1,} | احذف الفاصلة الأخيرة. |
| علامات اقتباس مفردة | {'a': 1} | استخدم علامات الاقتباس المزدوجة لكل مفتاح ونص. |
| مفتاح دون اقتباس | {a: 1} | ضعه بين علامتي اقتباس: {"a": 1}. |
| تعليق | // note أو /* note */ | لا تحتوي JSON على تعليقات؛ احذفها. |
| صفر بادئ أو علامة الجمع | 007، +5 | اكتب 7 و5. |
| NaN أو Infinity أو undefined | {"x": NaN} | لا توجد هذه القيم في JSON؛ استخدم null أو نصًا. |
| سطر جديد خام داخل نص | سطر جديد بين علامتي اقتباس | اكتبه بصيغة الحرفين \n. |
| فاصلة مفقودة | {"a": 1 "b": 2} | افصل بين الأعضاء بفواصل. |
القيمة 42 أو "text" أو null وحدها صالحة أيضًا؛ فمنذ RFC 7159 يمكن أن يكون نص JSON أي قيمة، لا كائنًا أو مصفوفة فقط. أما True أو NULL بحرف كبير فغير صالحتين، فالقيم الحرفية الثلاث كلها بحروف صغيرة.
ما الذي يُغيِّره التنسيق
تحلِّل هذه الأداة JSON الخاص بك ثم تكتبه من جديد، فالنتيجة هي البيانات نفسها بتخطيط جديد، وليست نسخة حرفًا بحرف من نصك. وقد يختلف أربعة أشياء، والأولان منها مهمان إذا كنت تنسِّق JSON يغذي نظامًا آخر:
- تفقد الأعداد الصحيحة الكبيرة دقتها. أرقام JavaScript عشرية بدقة 64 بت، فالأعداد الصحيحة التي تتجاوز 9,007,199,254,740,991 (253 − 1) تُقرَّب. فالرقم
9007199254740993يعود بصيغة9007199254740992. إذا كانت معرّفاتك بهذا الحجم، فاحتفظ بها كنصوص. - تُدمَج المفاتيح المكرّرة. تنص RFC 8259 على أن الأسماء ينبغي أن تكون فريدة، لكنها لا تمنع التكرار؛ وتحتفظ هذه الأداة بالقيمة الأخيرة وتُسقط السابقة.
- تنتقل المفاتيح الشبيهة بالأعداد الصحيحة إلى الأمام. في JavaScript تُدرَج مفاتيح مثل
"1"و"2"قبل المفاتيح الأخرى بترتيب تصاعدي، فيُكتب{"b":1,"2":1,"1":1}بصيغة{"1":1,"2":1,"b":1}. وتحتفظ المفاتيح الأخرى بترتيبها. - تُعاد كتابة الأرقام والمحارف المهرَّبة. يصبح
1.50بصيغة1.5، ويصبح1e2بصيغة100، ويصبح\u00e9بصيغةé.
مثال تطبيقي
خذ هذا الإدخال المكوَّن من 119 بايتًا، ويتضمن معرّفًا كبيرًا، وصفرًا في النهاية، وأسًا، ومحرفًا مهرَّبًا:
الإدخال
{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}
تنسيق بإزاحة مسافتين يكتب 156 بايتًا (+31%)، بعضو واحد في كل سطر، مع "id": 9007199254740992، و"price": 1.5، و"x": 100، و"name": "café". أما تصغير فيكتب 114 بايتًا (-4%) في سطر واحد، مع التغييرات نفسها. ولا يختلف شيء آخر في البيانات. والأحجام بايتات UTF-8، لذلك يُحسب الحرف é بايتين.
أي أداة تحتاج؟
هذه الصفحة مخصصة لـ JSON نفسه. وإذا كانت بياناتك بصيغة أخرى، فهناك أداة شقيقة تقوم بالمهمة: CSV إلى JSON للجداول الإلكترونية، ومحوّلا YAML to JSON Converter وXML to JSON Converter المخطَّطان، وأداة تنسيق XML لمستندات XML، وHTML Formatter للترميز.
الأسئلة الشائعة
- ماذا تفعل أداة تنسيق JSON؟
- تحلِّل JSON ثم تكتبه من جديد بإزاحة متسقة وسطر لكل عضو، فتصبح استجابة واجهة برمجية مضغوطة قابلة للقراءة. ولأنها تحلِّل النص أولًا، فهي تعمل أيضًا أداةَ تحقق: فالنص غير الصالح لـ JSON يُنتج خطأً بدلًا من ناتج.
- لماذا تقول الأداة إن JSON الخاص بي غير صالح؟
- عادةً لأن أحد الأخطاء الواردة في الجدول أعلاه موجود: فاصلة زائدة، أو علامات اقتباس مفردة، أو مفتاح دون اقتباس، أو تعليق، أو فاصلة مفقودة. تأتي الرسالة من محلِّل JSON في متصفحك، لذا تختلف صياغتها بين Chrome وFirefox وSafari، وقد تذكر موضع الخطأ أو لا تذكره. ابحث عن المشكلة عند الموضع الذي تذكره، أو قبله مباشرة.
- هل يمكنني تنسيق JSON يحتوي على تعليقات أو JSON5 أو JSONC؟
- لا. فالتعليقات والفواصل الزائدة وعلامات الاقتباس المفردة ليست جزءًا من JSON، وتستخدم هذه الأداة محلِّلًا صارمًا. أزِلها أولًا، أو حوِّل الملف إلى JSON عادي في محررك.
- ما الفرق بين تنسيق وتصغير والتحقق فقط؟
- يضيف «تنسيق» الإزاحة وفواصل الأسطر، ويزيل «تصغير» كل مسافة اختيارية ليعطي أصغر نص ممكن، ويتحقق «التحقق فقط» من الصياغة ويعرض حكمًا دون ناتج. تستخدم الأدوات الثلاث المحلِّل نفسه، فالمستند الذي ينجح في إحداها ينجح في الجميع.
- لماذا تغيّر رقم في JSON الخاص بي؟
- تقرأ الأداة الأعداد كأعداد عشرية في JavaScript وتطبعها بأقصر صيغة لديها. فهي تحوِّل
1.50إلى1.5و1e2إلى100، وتقرّب الأعداد الصحيحة الأكبر من 253 − 1. خزِّن المعرّفات الكبيرة جدًا كنصوص إذا كان يجب أن تبقى كما هي تمامًا. - هل يُرفع JSON الخاص بي إلى أي مكان؟
- لا. يجري التحليل والتنسيق والإبراز كله في متصفحك، ولا يُرسَل النص الذي تلصقه إلى CitationEasy أو إلى أي جهة أخرى. امسح المربع عند الانتهاء على حاسوب مشترك.
- هل يمكنني ترتيب المفاتيح أو استخدام الجدولة للإزاحة؟
- ليس هنا. خيارات الإزاحة هي 2 أو 4 أو 8 مسافات، وتبقى المفاتيح بالترتيب الذي أعطيته في الإدخال، باستثناء المفاتيح الشبيهة بالأعداد الصحيحة التي تنتقل إلى الأمام كما ورد أعلاه.