كيفية التحقق من صحة JSON وضغطه وتنسيقه للقراءة عبر الإنترنت
JSON في كل مكان. ملفات الإعدادات، استجابات الـ API، مقارنات البيئات، تصدير قواعد البيانات — تقضي وقتاً أطول مما تريد الاعتراف به في قراءة JSON وكتابته وتصحيح أخطائه. ومع ذلك، التجربة الافتراضية في الغالب إما جدار من النص لا تستطيع عيناك قراءته، أو كتلة مضغوطة تحتوي على خطأ في الصياغة مدفون في مكان ما بداخلها.
يغطي هذا الدليل ثلاث عمليات يقوم بها كل مطور يومياً مع JSON: التحقق من صحته (هل هذا JSON قانوني أصلاً؟)، وتنسيقه للقراءة (جعله مقروءاً)، وضغطه (إزالة المسافات قبل نشره في الإنتاج). يمكنك تنفيذ الثلاثة في متصفحك باستخدام JSON Formatter → — دون تثبيت، دون حساب، دون لصق في الطرفية.
لماذا تنسيق JSON مهم فعلاً
التنسيق ليس مجرد شكل خارجي. لـ JSON دوران مختلفان في أي نظام برمجي، وهما يسيران في اتجاهين متعاكسين:
JSON مقروء للإنسان — لملفات الإعداد ومراجعة الكود وتصحيح الأخطاء والتوثيق — يحتاج إلى مسافات بادئة وفواصل أسطر وبنية مرئية واضحة. كائن متداخل بعمق مكتوب على سطر واحد يكاد يكون غير قابل للقراءة.
JSON للإنتاج — لحمولات الـ API وأدوات البناء وأي شيء يعبر الشبكة — يجب أن تُزال منه كل تلك المسافات. المسافات هي بايتات، والبايتات تتراكم. حمولة JSON مضغوطة يمكن أن تكون أصغر بنسبة 20–40% من نظيرتها المنسقة، وهذا يُحدث فرقاً على نطاق واسع.
المشكلة أن معظم المطورين يتنقلون يدوياً بين هذين الشكلين. يلصقون في منسق إلكتروني، ثم ينسخون مرة أخرى، وينسون الضغط قبل النشر، أو يرسلون إعداداً به فاصلة زائدة تكسر التحليل في بيئة التجهيز لكن ليس محلياً. أداة واحدة تتولى الثلاثة — التحقق والتنسيق والضغط — تُلغي هذا الاحتكاك تماماً.
تنسيق JSON للقراءة: ما هو وكيف تفعله
تنسيق JSON للقراءة يعني أخذ JSON مضغوط أو ملتصق وتوسيعه بمسافات بادئة متسقة وفواصل أسطر حتى يصبح مقروءاً للإنسان.
خذ هذا المثال:
{"user":{"id":42,"name":"Ada Lovelace","roles":["admin","editor"],"preferences":{"theme":"dark","notifications":true}}}بعد التنسيق بمسافتين بادئتين يصبح:
{
"user": {
"id": 42,
"name": "Ada Lovelace",
"roles": [
"admin",
"editor"
],
"preferences": {
"theme": "dark",
"notifications": true
}
}
}نفس البيانات تماماً. قابلية قراءة مختلفة كلياً. الشكل الثاني هو ما تريده عند مراجعة pull request أو تصحيح استجابة API أو كتابة ملف إعداد يدوياً.
المعيار الشائع هو مسافتان بادئتان (مواصفة JSON نفسها لا تُحدد ذلك، لكن مسافتين هما الاتفاق شبه الكوني في بيئات JavaScript). بعض الفرق تستخدم أربع مسافات أو تبويبات — المهم هو الاتساق.
للتنسيق في المتصفح: الصق JSON الخاص بك في JSON Formatter → واضغط Format. تتولى الأداة المسافات البادئة وتعطيك ناتجاً نظيفاً مقروءاً فوراً.
للتنسيق برمجياً:
// JavaScript / Node.js
const raw = '{"name":"Ada","roles":["admin","editor"]}';
const pretty = JSON.stringify(JSON.parse(raw), null, 2);
console.log(pretty);المعامل الثالث لـ JSON.stringify هو مستوى المسافة البادئة. مرر 2 لمسافتين، أو 4 لأربع مسافات، أو "\t" للتبويبات.
ضغط JSON للإنتاج
الضغط يُزيل كل المسافات غير الضرورية — مسافات، تبويبات، أسطر جديدة — دون تغيير البيانات. الناتج سطر واحد كثيف من JSON تُحبه المحللات ويكرهه البشر.
خذ المثال المنسق أعلاه. بعد الضغط:
{"user":{"id":42,"name":"Ada Lovelace","roles":["admin","editor"],"preferences":{"theme":"dark","notifications":true}}}هذا هو نفس JSON تماماً. كل مفتاح، كل قيمة، كل كائن متداخل — كلها سليمة. الفرق الوحيد هو اختفاء المسافات.
متى يكون هذا مهماً؟
- استجابات الـ API — حمولات أصغر تعني نقل شبكي أسرع وتكاليف نطاق ترددي أقل
- أدوات البناء — ملفات إعداد JSON المضمنة في تطبيق واجهة أمامية يجب ضغطها كأي أصل آخر
- إعدادات البيئة — بعض الأنظمة لها حدود صارمة على حجم متغيرات البيئة؛ JSON المضغوط يتلاءم بشكل أنظف
- المقارنة بين البيئات — ملفا إعداد بأساليب مسافات بادئة مختلفة ينتجان فروقات صاخبة؛ تطبيع الاثنين بالضغط أولاً يجعل التغييرات الفعلية واضحة
للضغط في المتصفح: الصق في JSON Formatter → واضغط Minify. تحصل على ناتج من سطر واحد جاهز للنسخ.
للضغط برمجياً:
// JavaScript / Node.js
const pretty = `{
"name": "Ada",
"roles": ["admin", "editor"]
}`;
const minified = JSON.stringify(JSON.parse(pretty));
console.log(minified);
// {"name":"Ada","roles":["admin","editor"]}JSON.stringify بدون معامل مسافة ينتج ناتجاً مضغوطاً افتراضياً.
التحقق من صحة صياغة JSON
التحقق يجيب على سؤال واحد: هل هذا JSON صحيح؟ ليس ما إذا كانت البيانات منطقية لتطبيقك — فقط ما إذا كانت الصياغة قانونية وفق مواصفة JSON.
يبدو هذا بسيطاً حتى تجد نفسك تحدق في خطأ تحليل من ملف إعداد وتعجز عن تحديد أي سطر من الأربعمائة سطر هو المشكلة.
أسباب شائعة لعدم صحة JSON:
الفواصل الزائدة
{
"name": "Ada",
"roles": ["admin", "editor"],
}الفاصلة الزائدة بعد "editor" غير قانونية في JSON (مقبولة في JavaScript وفي JSONC، لكن ليس في JSON الصارم). ستُرفض من قِبَل المحللات.
علامات الاقتباس المفردة بدلاً من المزدوجة
{
'name': 'Ada'
}يشترط JSON علامات اقتباس مزدوجة لجميع السلاسل النصية وجميع المفاتيح. علامات الاقتباس المفردة غير صحيحة.
المفاتيح غير المقتبسة
{
name: "Ada"
}المفاتيح يجب أن تكون سلاسل نصية في JSON. هذا صياغة صحيحة لكائن JavaScript الحرفي لكن ليس لـ JSON.
التعليقات
{
// author config
"name": "Ada"
}JSON لا يدعم التعليقات. إذا احتجت تعليقات في ملف إعداد، انظر إلى JSONC أو YAML أو TOML — مقارنة YAML مقابل JSON مقابل TOML تغطي المفاضلات بعمق.
الأقواس المفقودة أو غير المتطابقة
{
"user": {
"name": "Ada"
}كائن أو مصفوفة غير مغلقة ستُفشل التحليل. في ملف كبير يسهل تجاهل ذلك بالعين.
عند لصق JSON غير صحيح في JSON Formatter →، تُبرز الأداة الخطأ مباشرة — تُظهر لك السطر والحرف الدقيق حيث توجد المشكلة. تُصحح الخطأ مباشرة في المحرر وتتحقق مجدداً. دون طرفية، دون JSON.parse في REPL، دون تخمين.
أخطاء JSON الشائعة وكيفية إصلاحها
نمط تصحيح يستحق المعرفة: إذا كان لديك كتلة JSON كبيرة متداخلة بعمق ولا تجد الخطأ، الصقها في المُحقق أولاً. سيُشير إلى الموضع الدقيق. ثم يمكنك تصحيحه هناك وتنسيق النسخة المصححة.
سير عمل عملي مع JSON (خطوة بخطوة)
إليك التسلسل الذي يغطي معظم مهام JSON الواقعية في خطوة واحدة:
-
انسخ JSON من أي مكان يوجد فيه — استجابة API، ملف إعداد، تصدير قاعدة بيانات، ناتج الطرفية.
-
الصقه في JSON Formatter →.
-
تحقق أولاً. إذا كانت هناك أخطاء في الصياغة، تُبرزها الأداة مباشرة. أصلحها قبل أي شيء آخر.
-
نسّق للقراءة إذا كنت تريد قراءة البيانات أو مراجعة البنية أو مشاركتها مع زميل. اضغط Format.
-
اضغط إذا كان الناتج سيذهب لمكان لا يحتاج مسافات — حمولة API، أداة بناء، متغير بيئة. اضغط Minify.
-
انسخ الناتج والصقه حيث يجب أن يذهب.
هذا كل سير العمل. لا تثبيت، لا طرفية، لا إضافة متصفح معطوبة. للعمل الأكثر تقدماً — كتحرير القيم مباشرة، التنقل في عرض الشجرة، أو تحويل JSON إلى CSV — يغطي دليل JSON Viewer والمحرر المستوى التالي من الأدوات.
متى تستخدم كل عملية
جرّبه الآن
الصق أي JSON في JSON Formatter → — صحيحاً كان أم معطوباً، مضغوطاً أم منتفخاً — وستتولى الأداة الباقي. تحقق، نسّق، واضغط في متصفحك دون تسجيل ودون رفع ملفات.
إذا كنت تعمل مع JSON بانتظام، يستحق أيضاً وضعه في المفضلة: JSON Viewer والمحرر لتحرير الشجرة المباشر، ودليل YAML مقابل JSON مقابل TOML إذا كنت تقرر أي صيغة تستخدمها لملف إعداد من البداية.