ما الذي تفعله الأداة
JSON5 امتداد لـ JSON مصمَّم للملفات التي يكتبها الناس يدويًا. يسمح بالتعليقات والفواصل الزائدة في النهاية ومفاتيح الكائنات بلا علامات اقتباس والنصوص بعلامات اقتباس مفردة وبعض صيغ الأعداد الأكثر راحة. تقبل أدوات مثل Babel وبعض المجمّعات وكثير من التطبيقات صيغة JSON5 أو JSONC (JSON مع التعليقات، وهي المستخدمة في tsconfig.json وإعدادات VS Code) للإعداد.
لكن كثيرًا من المحللات وواجهات API ولغات البرمجة لا تقبل إلا JSON الصارم. يقرأ هذا المحوّل JSON5 أو JSONC ويُخرج JSON قياسيًا يقبله أي محلل: كل المفاتيح بين علامتي اقتباس مزدوجتين، بلا تعليقات ولا فواصل زائدة، والأعداد بالصيغة العشرية.
طريقة الاستخدام
- الصق JSON5 أو JSONC، أو ارفع ملف
.json5أو.jsoncأو.json، أو انقر مثال. - اختر المسافة البادئة: مسافتان أو 4 مسافات، أو مضغوط لسطر واحد.
- اختر طريقة التعامل مع
InfinityوNaN: التحويل إلىnullأو إلى نصوص أو إظهار خطأ. - انسخ JSON أو نزّله.
إذا احتوى الإدخال على خطأ في الصياغة، تعرض الرسالة السطر والعمود لتنتقل إليه مباشرة. وبما أن JSON العادي هو JSON5 صالح أيضًا، يمكنك استخدام الأداة للتحقق من أن الملف قابل للتحليل ولإعادة ضبط مسافاته البادئة.
مثال
إعداد JSON5 هذا:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
يصبح JSON الصارم التالي:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
تُحذف التعليقات، وتُحاط المفاتيح والنصوص بعلامات اقتباس مزدوجة، ويُكتب العدد الست عشري والعدد العشري الذي يفتقد الجزء الصحيح بالصيغة العشرية، وتختفي الفواصل الزائدة.
ما الذي يُحوَّل
- تُحذف تعليقات السطر
//وتعليقات الكتلة/* */. - المفاتيح بلا علامات اقتباس مثل
portوالنصوص بعلامات اقتباس مفردة مثل'localhost'تصبح بعلامات اقتباس مزدوجة. - النصوص الممتدة بشرطة مائلة عكسية في نهاية السطر تُدمج في نص واحد.
- الأعداد الست عشرية (
0xFF) والفاصلة العشرية في البداية أو النهاية (.5و5.) وعلامات الجمع الصريحة (+3) تصبح أعدادًا عشرية عادية. - تُزال الفواصل الزائدة في الكائنات والمصفوفات.
- إذا تكرر مفتاح مرتين، فالقيمة الأخيرة هي المعتمدة كما في JavaScript.
الأسئلة الشائعة
› ما الفرق بين JSON5 وJSONC؟
JSONC هو JSON مع التعليقات (ومع الفواصل الزائدة في VS Code). أما JSON5 فيذهب أبعد: مفاتيح بلا علامات اقتباس، ونصوص بعلامات اقتباس مفردة، ونصوص متعددة الأسطر، وأعداد ست عشرية، وفاصلة عشرية في بداية العدد أو نهايته، وInfinity وNaN. JSON5 يشمل JSONC، لذا تقرأ هذه الأداة الصيغتين.
› هل تُحفظ تعليقاتي؟
لا. لا يملك JSON القياسي صيغة للتعليقات، لذا تُحذف. إن احتجت إليها فاحتفظ بملف JSON5 مصدرًا وأنشئ JSON منه.
› ماذا يحدث لـ Infinity وNaN؟
لا يستطيع JSON الصارم تمثيلهما. افتراضيًا يصبحان null كما يفعل JSON.stringify في JavaScript. ويمكنك بدلًا من ذلك تحويلهما إلى نصوص أو إظهار خطأ يذكر المسار الدقيق.
› هل تُرفع بياناتي إلى خادم؟
لا. يجري التحليل والتحويل بالكامل داخل متصفحك، فلا تغادر ملفات الإعداد التي تحتوي على أسرار جهازك أبدًا.