ToolHub
View All Posts

كيفية التحقق من JSON: دليل كامل مع أمثلة

JSON هو حجر الزاوية في واجهات API الحديثة وتنسيقات التكوين وتبادل البيانات. لكن JSON غير الصالح يمكن أن يتسبب في تعطل التطبيقات وفشل تكاملات API وساعات من معاناة التصحيح. يأخذك هذا الدليل عبر كل ما تحتاج لمعرفته حول التحقق من JSON، من فحوصات الصيغة الأساسية إلى التحقق المتقدم من Schema مع أمثلة واقعية.

لماذا التحقق من JSON مهم

JSON غير الصالح هو أحد أكثر مصادر الأخطاء شيوعًا في تطبيقات الويب. فاصلة في غير محلها أو مفتاح غير مقتبس أو فاصلة trailing يمكن أن تتسبب في رمي JSON.parse() لـ SyntaxError، مما يعطل خط أنابيب البيانات بالكامل. يلتقط التحقق هذه الأخطاء قبل أن تنتشر عبر النظام وتسبب أعطالاً.

بالإضافة إلى صحة الصيغة، يضمن التحقق أن بيانات JSON تتوافق مع الهيكل المتوقع. قد ترجع API JSON صالحًا لكنه يفتقر إلى حقول مطلوبة أو يحتوي على أنواع بيانات خاطئة أو قيم خارج النطاق المقبول. يحل التحقق من Schema هذه المشكلات الهيكلية.

قواعد JSON النحوية

قبل الغوص في أدوات التحقق، فهم القواعد التي تجعل JSON صالحًا أمر بالغ الأهمية. JSON له صيغة صارمة محددة بواسطة RFC 8259، وحتى مخالفة حرف واحد تجعل المستند بأكمله غير صالح.

يجب استخدام علامات الاقتباس المزدوجة للسلاسل

يجب وضع جميع قيم السلاسل ومفاتيح الكائنات بين علامات اقتباس مزدوجة. علامات الاقتباس المفردة ليست محددات سلاسل JSON صالحة، وهذا خطأ شائع للمطورين القادمين من JavaScript.

// Invalid - single quotes
{'name': 'Alice', 'age': 30}

// Valid - double quotes
{"name": "Alice", "age": 30}

يجب وضع علامات اقتباس حول مفاتيح الكائنات

على عكس كائنات JavaScript الحرفية، يتطلب JSON وضع جميع مفاتيح الكائنات بين علامات اقتباس مزدوجة. المفاتيح غير المقتبسة هي خطأ نحوي.

// Invalid - unquoted keys
{name: "Alice", age: 30}

// Valid - quoted keys
{"name": "Alice", "age": 30}

الفاصلة trailing ممنوعة

لا يسمح JSON بفاصلة بعد آخر عنصر في كائن أو مصفوفة. هذا خطأ شائع آخر، خاصة عند تحرير JSON يدويًا.

// Invalid - trailing comma
{
  "name": "Alice",
  "age": 30,
}

// Valid - no trailing comma
{
  "name": "Alice",
  "age": 30
}

التعليقات غير مدعومة

لا يدعم JSON التعليقات. تعليقات // ذات السطر الواحد وتعليقات /* */ متعددة الأسطر غير صالحة في JSON. إذا كنت بحاجة إلى توثيق، استخدم ملفات منفصلة أو تنسيقات مثل JSONC.

أخطاء التحقق من JSON الشائعة

معرفة أكثر الأخطاء شيوعًا تساعدك في اكتشافها وإصلاحها بسرعة. إليك ما ستواجهه أكثر من غيره:

التحقق من JSON في JavaScript

أبسط طريقة للتحقق من JSON في JavaScript هي تغليف JSON.parse() في كتلة try-catch. إذا كان JSON غير صالح، ترمي الدالة SyntaxError.

function validateJSON(jsonString) {
  try {
    JSON.parse(jsonString);
    return { valid: true };
  } catch (error) {
    return {
      valid: false,
      error: error.message
    };
  }
}

const result = validateJSON('{"name": "Alice"}');
console.log(result);
// { valid: true }

const badResult = validateJSON("{'name': 'Alice'}");
console.log(badResult);
// { valid: false, error: "Unexpected token '..." }

التحقق من JSON في Python

توفر Python وحدة json التي تتضمن json.loads() لتحليل سلاسل JSON. مثل JavaScript، يثير JSON غير الصالح استثناء json.JSONDecodeError مع معلومات موقع مفصلة.

import json

def validate_json(json_string):
    try:
        json.loads(json_string)
        return {"valid": True}
    except json.JSONDecodeError as e:
        return {
            "valid": False,
            "error": str(e),
            "line": e.lineno,
            "column": e.colno
        }

result = validate_json('{"name": "Alice"}')
print(result)
# {'valid': True}

التحقق من JSON Schema

التحقق النحوي يخبرك فقط إذا كان JSON منسقًا جيدًا. JSON Schema يتيح لك تعريف الهيكل المتوقع والتحقق من البيانات مقابله. يحدد Schema الحقول المطلوبة وأنواع البيانات ونطاقات القيم وأنماط السلاسل وهياكل الكائنات المتداخلة.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["name", "email"],
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0 }
  }
}

تشمل مدققات JSON Schema الشائعة Ajv لـ JavaScript و jsonschema لـ Python و json-schema-validator لـ Java. تتحقق هذه المكتبات من بيانات JSON مقابل Schema الخاص بك وتولد رسائل خطأ مفصلة لكل مخالفة.

أدوات التحقق من JSON عبر الإنترنت

عندما تحتاج إلى فحص مستند JSON بسرعة دون كتابة كود، المدققات عبر الإنترنت هي أسرع خيار. توفر تغذية راجعة فورية مع تمييز الأخطاء وأرقام الأسطر.

جرب مدقق JSON من ToolHub للتحقق الفوري من بيانات JSON. يوفر رسائل خطأ مفصلة مع أرقام الصفوف والأعمدة، وتحققًا في الوقت الفعلي أثناء الكتابة، وتنسيقًا بنقرة واحدة.

أفضل ممارسات التحقق من JSON

مستعد للتحقق من بيانات JSON الخاصة بك؟ جرب مدقق JSON المجاني عبر الإنترنت مع اكتشاف فوري للأخطاء وتغذية راجعة مفصلة.

تحقق من JSON الآن

الأسئلة الشائعة

ما هو التحقق من JSON؟

التحقق من JSON هو عملية فحص ما إذا كان مستند JSON يتوافق مع قواعد الصيغة الصحيحة واختياريًا مع Schema محدد. يضمن التحقق النحوي أن JSON منسق جيدًا، بينما يضمن التحقق من Schema أن بنية البيانات تطابق الأنواع المتوقعة والحقول المطلوبة وقيود القيم.

ما هي أكثر أخطاء JSON شيوعًا؟

تشمل أكثر أخطاء JSON شيوعًا: فاصلة بعد آخر عنصر، استخدام علامات اقتباس مفردة بدلاً من مزدوجة، مفاتيح كائنات غير مقتبسة، التعليقات (غير مسموح بها في JSON)، وقيم undefined أو NaN. هذه الأخطاء تتسبب في رمي JSON.parse() لـ SyntaxError.

كيفية التحقق من JSON في JavaScript؟

استخدم JSON.parse() المغلف في كتلة try-catch. إذا كان JSON غير صالح، يرمي JSON.parse() SyntaxError يمكنك التقاطه ومعالجته. للتحقق من Schema، استخدم مكتبات مثل Ajv التي تطبق التحقق من JSON Schema.

ما هو JSON Schema؟

JSON Schema هو مفردات تتيح لك توثيق والتحقق من مستندات JSON. يعرف الهيكل المتوقع والأنواع والحقول المطلوبة ونطاقات القيم وأنماط السلاسل وهياكل الكائنات المتداخلة. يمكنك استخدامه للتحقق من أن بيانات JSON تتوافق مع تنسيق محدد يتجاوز صحة الصيغة الأساسية.

هل يمكن التحقق من JSON عبر الإنترنت؟

نعم، أدوات التحقق من JSON عبر الإنترنت مثل مدقق JSON من ToolHub تتيح لك لصق بيانات JSON ورؤية فورًا ما إذا كانت صالحة، مع رسائل خطأ مفصلة توضح الصف والعمود الدقيقين لحدوث الخطأ.