مدقق JSON
تحقق مما إذا كان JSON الخاص بك صحيحًا من الناحية التركيبية وفقًا لـ RFC 8259. احصل على رسائل خطأ دقيقة مع أرقام الأسطر والأعمدة لإصلاح المشكلات بسرعة.
الفاصلة المتبقية بعد العنصر الأخير في المصفوفة هي أكثر أخطاء JSON شيوعًا - وهي غير مرئية للعين في المخرجات المضغوطة. تشكل أخطاء تحليل JSON حوالي 15% من وقت تصحيح الأخطاء في واجهات برمجة التطبيقات، وفقًا لتحليل استطلاع مطوري StackOverflow لعام 2023. هذا المدقق يكتشف ذلك وكل انتهاك آخر لـ RFC 8259 مباشرة في متصفحك. الصق JSON الخاص بك للحصول على حكم فوري: صالح أو غير صالح، مع السطر والعمود المحددين لأي مشكلة. لا يتم تحميل أي شيء. لا حاجة لحساب.
كيفية التحقق من صحة JSON
- الصق أو اكتب JSON الخاص بك في مربع الإدخال.
- يتحقق المدقق من بناء الجملة في الوقت الفعلي، أو انقر على تحقق من الصحة للحصول على تقرير كامل.
- إذا كان صالحًا، فإن مؤشرًا أخضر يؤكد الهيكل مع ملخص لنوع المستوى الأعلى.
- إذا كان غير صالح، فإن لوحة الأخطاء تعرض السطر والعمود المحددين، ووصفًا باللغة الإنجليزية البسيطة للمشكلة.
- قم بإصلاح المشكلة المحددة وأعد التحقق من الصحة حتى تحصل على نتيجة نظيفة.
ما الذي يتم التحقق منه
القواعد الهيكلية
يجب أن يبدأ JSON إما بكائن ({}) أو مصفوفة ([]) في المستوى الأعلى، على الرغم من أن RFC 8259 يسمح أيضًا بالقيم البدائية (السلاسل، الأرقام، القيم المنطقية، null) كقيم في المستوى الأعلى. يجب أن تكون الأقواس والمربعات متوازنة ومتناسبة بشكل صحيح. يجب أن تفصل الفواصل بين العناصر ولكن لا يجب أن تظهر بعد العنصر الأخير - الفواصل المتبقية هي أكثر أخطاء JSON شيوعًا. يجب أن تكون كل مفتاح كائن سلسلة محاطة بعلامات اقتباس مزدوجة.
أنواع القيم
يحدد JSON ستة أنواع من القيم: السلاسل (مزدوجة الاقتباس، مع تسلسلات هروب محددة)، الأرقام (صحيحة وعشرية، بدون أصفار بادئة)، القيم المنطقية (true وfalse، بحروف صغيرة فقط)، null (بحروف صغيرة)، الكائنات، والمصفوفات. القيم الخاصة بـ JavaScript مثل undefined، NaN، Infinity، وتعبيرات الدوال ليست JSON صحيحة وستفشل في التحقق من الصحة.
امتثال RFC 8259
RFC 8259 (نشر في ديسمبر 2017، ليحل محل RFC 4627 وRFC 7159) هو المعيار الحالي لـ IETF لــ JSON. يحدد ترميز UTF-8، ويمنع مفاتيح الكائن المكررة، ويحدد تسلسلات الهروب الدقيقة لقيم السلاسل. يفرض هذا المدقق قواعد RFC 8259 الصارمة لتحقيق أقصى توافق عبر جميع المحللات واللغات.
مثال
إدخال غير صالح (فاصلة متبقية)
{
"name": "Alice",
"roles": ["admin", "editor",]
}
خطأ المدقق
خطأ في السطر 3، العمود 33: رمز غير متوقع ']'
الفواصل المتبقية غير مسموح بها في مصفوفات JSON (RFC 8259 §5).
أخطاء بناء جملة شائعة
- فاصلة متبقية -
{"a": 1,}- قم بإزالة الفاصلة الأخيرة قبل القوس أو المربع المغلق - سلاسل مفردة -
{'key': 'value'}- غيرها إلى علامات اقتباس مزدوجة - مفاتيح غير محاطة بعلامات اقتباس -
{key: "value"}- قم بتغليف المفتاح بعلامات اقتباس مزدوجة - تعليقات JavaScript -
// commentأو/* comment */- لا يحتوي JSON على بناء جملة للتعليقات؛ قم بإزالتها - خطأ في حالة القيم المنطقية/null -
True،False،NULLغير صالحة؛ استخدمtrue،false،null
الفرق بين التحقق من الصحة والتنسيق
التحقق من الصحة يتأكد مما إذا كان JSON صحيحًا من الناحية التركيبية - إما ينجح أو يفشل مع تفاصيل خطأ محددة. التنسيق يضيف فقط مسافات بيضاء لسهولة القراءة ولا يتحقق من الصحة. محاولة تنسيق JSON غير الصحيح تفشل أيضًا، لأن المنسق يجب أن يقوم بتحليل JSON أولاً. تحقق من الصحة أولاً، ثم قم بالتنسيق.
بمجرد أن ينجح JSON في التحقق من الصحة، يقوم منسق JSON بتهيئته لسهولة القراءة، ومضغوط JSON يضغطه للاستخدام في الإنتاج. بالنسبة لـ JSON المضمن في URL، قم بفك تشفيره باستخدام فك تشفير URL قبل التحقق من الصحة.
الأسئلة الشائعة
ما الفرق بين التحقق من صحة JSON والتنسيق؟
التحقق من الصحة يتأكد مما إذا كان JSON الخاص بك صحيحًا من الناحية التركيبية وفقًا لـ RFC 8259. التنسيق يضيف فقط مسافات بيضاء لسهولة القراءة ولا يتحقق من الصحة. يمكنك محاولة تنسيق JSON غير الصحيح، لكن المنسق سيفشل أيضًا لأنه يجب أن يقوم بتحليل JSON أولاً. تحقق من الصحة قبل التنسيق.
لماذا تقبل JavaScript JSON الخاص بي لكن المدقق يرفضه؟
بعض بيئات JavaScript تقبل مجموعات JSON غير الصارمة مثل JSON5 أو HJSON، والتي تسمح بالتعليقات، والسلاسل المفردة، والفواصل المتبقية. يقوم هذا المدقق بالاختبار وفقًا لـ RFC 8259 الصارم لضمان عمل JSON في جميع اللغات وبيئات التشغيل. إذا كانت حالتك الاستخدام فقط JavaScript، فكر في JSON5.parse() مع مكتبة json5.
هل يمكنني التحقق من وثائق JSON Schema باستخدام هذه الأداة؟
هذه الأداة تتحقق فقط من بناء جملة JSON، وليس دلالات JSON Schema. وثيقة JSON Schema نفسها هي JSON صحيحة، لذا فإن التحقق من بناء الجملة يعمل. للتحقق مما إذا كان كائن البيانات يتوافق مع تعريف JSON Schema، تحتاج إلى مدقق JSON Schema مخصص مثل ajv.
هل بياناتي خاصة عندما أتحقق منها هنا؟
بالتأكيد. يتم تنفيذ التحقق من الصحة على جانب العميل في متصفحك باستخدام الدالة الأصلية JSON.parse. لا يتم إرسال أي بيانات إلى أي خادم، ولا يتم تسجيلها، أو تخزينها. يمكنك التحقق من صحة الحمولة التي تحتوي على بيانات اعتماد API، أو معلومات شخصية، أو بيانات أعمال داخلية بأمان.
ما هي أكثر أخطاء التحقق من صحة JSON شيوعًا؟
حسب التكرار: (1) الفواصل المتبقية بعد العنصر الأخير - [1, 2, 3,]; (2) السلاسل المفردة بدلاً من السلاسل المزدوجة؛ (3) شرائط خلفية غير هاربة أو أحرف تحكم داخل السلاسل؛ (4) تعليقات JavaScript؛ (5) True/False/Null بحروف كبيرة بدلاً من true/false/null.