كيفية التحقق من صحة JSON
- الصق JSON أو افتح ملفًا. يجري التحقق تلقائيًا أثناء الكتابة.
- تعني رسالة «JSON صالح» الخضراء مع الإحصاءات أن المستند سليم. وإلا فاقرأ رسالة الخطأ: فهي تحدد السطر والعمود وما كان متوقعًا في ذلك الموضع.
- صحّح السطر المميَّز أو انقر على إصلاح، ثم استخدم تنسيق لجعل النتيجة سهلة القراءة.
أخطاء JSON الشائعة وطرق إصلاحها
| الخطأ | مثال | الحل |
|---|---|---|
| فاصلة ختامية زائدة | [1, 2, ] | احذف الفاصلة قبل ] أو } |
| علامات اقتباس مفردة | {'name': 'Ada'} | استخدم علامات اقتباس مزدوجة: {"name": "Ada"} |
| مفتاح بلا علامات اقتباس | {name: "Ada"} | ضع المفتاح بين علامتي اقتباس: {"name": "Ada"} |
| فاصلة مفقودة | {"a": 1 "b": 2} | أضف فاصلة بين الخاصيتين |
| تعليق | // settings | لا يدعم JSON التعليقات – احذفها |
| فاصل أسطر داخل سلسلة نصية | "line 1⏎line 2" | اكتب \n بدلًا من فاصل أسطر حقيقي |
| قيمة غير صالحة | undefined، NaN، True | استخدم null أو رقمًا أو true أو false |
| صفر بادئ | {"zip": 01234} | اكتب 1234، أو احتفظ به كنص: "01234" |
| قوس مفقود | {"a": [1, 2} | أغلق كل [ بـ ] وكل { بـ } |
ما الذي يجعل JSON صالحًا؟
يُعرَّف JSON في المعيار RFC 8259. ويتبع المستند الصالح بضع قواعد صارمة:
- يحتوي على قيمة واحدة فقط في المستوى الأعلى، وعادةً ما تكون كائنًا
{}أو مصفوفة[]. - أعضاء الكائن أزواج
"key": valueتفصل بينها فواصل؛ والمفاتيح دائمًا سلاسل نصية بين علامتي اقتباس مزدوجتين. - تستخدم السلاسل النصية علامات الاقتباس المزدوجة؛ ولا يُسمح داخلها إلا بتسلسلات الهروب
\" \\ \/ \b \f \n \r \tو\uXXXX. - الأرقام عشرية: بلا أصفار بادئة، وبلا علامة
+، وبلا صيغة سداسية عشرية، وبلاNaNأوInfinity. - تُكتب
trueوfalseوnullبأحرف صغيرة. - يُسمح بالمسافات وعلامات Tab وفواصل الأسطر بين الرموز، لكن لا يُسمح بالتعليقات.
التحقق من صحة JSON في سطر الأوامر
- Python: يطبع
python -m json.tool file.jsonالسطر والعمود لأول خطأ. - jq: ينتهي
jq empty file.jsonبرسالة خطأ إذا كان الملف غير صالح. - Node.js:
node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))"
الأسئلة الشائعة
ما الفرق بين مدقق JSON و JSON linter؟
يتحقق المدقق (validator) مما إذا كان النص يتبع صياغة JSON. أما أداة الفحص (linter) ففي الغالب تفرض أيضًا أسلوب كتابة موحدًا. يتحقق مدقق JSON هذا بصرامة وفق RFC 8259، ويمنحك مع زر «تنسيق» مسافات بادئة موحدة أيضًا.
هل يمكنه التحقق من JSON مقابل JSON Schema؟
تتحقق هذه الصفحة من الصياغة فقط. ولوصف البنية المتوقعة لبياناتك، أنشئ مخططًا من مستند نموذجي باستخدام مولد JSON Schema لدينا.
لماذا يكون JSON صالحًا هنا لكن يرفضه برنامج آخر؟
كثيرًا ما تتوقع البرامج بنية محددة (مفاتيح أو أنواعًا معينة)، أو ترميزًا معينًا مثل UTF-8 بدون علامة ترتيب البايت، أو أرقامًا ضمن نطاق محدود. وقد يخالف JSON الصالح من حيث الصياغة قواعد التطبيق هذه.
هل JSON مع التعليقات (JSONC) صالح؟
لا. لا يسمح JSON القياسي بالتعليقات. تقبلها بعض المحررات في ملفات الإعدادات (JSONC)، لكن واجهات API و JSON.parse لا تقبلها. ويحذف زر «إصلاح» التعليقات نيابةً عنك.