اعتبارسنجی JSON چیست؟
اعتبارسنجی JSON فرآیند بررسی این است که آیا یک رشته متنی با مشخصات JSON مطابقت دارد یا خیر. یک سند JSON معتبر سینتکس درستی دارد: رشتههای نقلقولشده به شکل صحیح، بدون کاما انتهایی، بدون کامنت، و یک عنصر ریشه واحد. اعتبارسنجی فوراً به شما میگوید JSON شما قابل تجزیه است یا نه — و اگر نه، دقیقاً مشکل کجاست.
JSON معتبر
json
{
"user": "alice",
"age": 30,
"active": true,
"tags": ["admin", "editor"]
}JSON نامعتبر — کاما انتهایی
json
{
"user": "alice",
"age": 30,
}چرا JSON را اعتبارسنجی کنیم؟
JSON نامعتبر به آرامی APIها، لودرهای کانفیگ و پایپلاینهای داده را خراب میکند. یک کاما در جای اشتباه میتواند از اجرای کل برنامه جلوگیری کند. شناسایی این خطاها در زمان توسعه — نه در محیط تولید — تفاوت میان یک انتشار روان و اختلال در سرویس است.
📍
تعیین دقیق محل خطا
اعتبارسنج نهتنها به شما میگوید JSON نامعتبر است، بلکه خط و ستون دقیقی که خطا در آن رخ داده را نیز مشخص میکند تا مستقیم به مشکل بروید.
⚡
اعتبارسنجی حین تایپ
اعتبارسنجی بلادرنگ در حین ویرایش بازخورد فوری میدهد. خطاها را میبینید که با رفعشان ناپدید میشوند — بدون نیاز به کلیک روی دکمه یا انتظار برای بیلد.
🔍
تمایز سینتکس از منطق
اعتبارسنجی JSON فقط خطاهای سینتکسی را میگیرد. تأیید میکند که سند قابل تجزیه است، جدا از اینکه آیا مقادیر از نظر معنایی برای برنامه شما درست هستند یا خیر.
🔒
حریم خصوصی از پیش تعبیهشده
تمام اعتبارسنجی در مرورگر شما اجرا میشود. کردنشیالها، کلیدهای API و پیلودهای حساس هرگز به هیچ سروری ارسال نمیشوند.
خطاهای رایج اعتبارسنجی JSON
این چهار اشتباه بخش بزرگی از خطاهای اعتبارسنجی JSON را تشکیل میدهند:
کاما انتهایی
یک کاما بعد از آخرین آیتم در یک آبجکت یا آرایه. در JavaScript معتبر است اما در JSON کاملاً ممنوع است.
json
{ "a": 1, "b": 2, }رشتههای تکنقلقولی
تکنقلقول در JSON معتبر نیست. هم کلیدها و هم مقادیر باید از دوتاقول استفاده کنند.
json
{ 'key': 'value' }Undefined و NaN
undefined، NaN و Infinity مقادیر JavaScript هستند اما JSON معتبر نیستند. به جای آنها از null یا یک رشته عددی استفاده کنید.
json
{ "val": undefined }کلیدهای بدون نقلقول
JSON لازم دارد تمام کلیدهای آبجکت رشتههایی با دوتاقول باشند. شناسههای خام مانند آبجکتهای JavaScript مجاز نیستند.
json
{ key: "value" }موارد استفاده رایج
تأیید قرارداد API
بدنه درخواستها و پاسخها را در برابر ساختارهای مورد انتظار اعتبارسنجی کنید تا باگهای یکپارچهسازی را قبل از رسیدن به محیط تولید شناسایی کنید.
بررسی کیفیت فایلهای تنظیمات
فایلهای package.json، tsconfig.json و سایر فایلهای تنظیمات را قبل از کامیت اعتبارسنجی کنید تا مطمئن شوید درست تجزیه میشوند.
اعتبارسنجی پایپلاین داده
بررسی کنید دادهای که از منابع خارجی یا بارگذاری کاربر دریافت میشود، قبل از پردازش از نظر سینتکسی سالم است.
بررسی پیش از استقرار CI/CD
اعتبارسنجی JSON را به عنوان یک مرحله بیلد اجرا کنید تا از استقرار فایلهای تنظیمات نامعتبر جلوگیری شود.
یادگیری و اشکالزدایی
از اعتبارسنج به عنوان ابزار یادگیری استفاده کنید تا بفهمید چرا الگوهای سینتکسی خاص JSON معتبر هستند یا نیستند.
بررسی کیفیت JSON تولیدشده
تأیید کنید که JSON تولیدشده توسط مولدهای کد، قالبها یا سریالایزرها قبل از استفاده به درستی شکل گرفته است.
سوالات متداول
تفاوت اعتبارسنجی JSON با اعتبارسنجی JSON Schema چیست؟
اعتبارسنجی JSON (کاری که این ابزار انجام میدهد) سینتکس را بررسی میکند — اینکه آیا سند JSON قابل تجزیه است. اعتبارسنجی JSON Schema یک مرحله جداگانه است که بررسی میکند آیا مقادیر با ساختار، انواع و محدودیتهای تعریفشده مطابقت دارند.
آیا JSON5 یا JSONC، JSON معتبر هستند؟
خیر. JSON5 (تکنقلقول، کامنت و کاما انتهایی را مجاز میداند) و JSONC (کامنت را مجاز میداند) supersetهای JSON هستند اما JSON استاندارد معتبر نیستند. این ابزار بر اساس مشخصات سختگیرانه JSON (RFC 8259) اعتبارسنجی میکند.
چرا JSON من تجزیه نمیشود در حالی که درست به نظر میرسد؟
رایجترین دلایل پنهان عبارتند از: کاما انتهایی بعد از آخرین ویژگی، علامت ترتیب بایت (BOM) در ابتدای فایل، یا یک رشته تکنقلقولی. JSON خود را در اعتبارسنج وارد کنید تا مکان دقیق را پیدا کنید.
آیا JSON میتواند کامنت داشته باشد؟
خیر — مشخصات JSON (RFC 8259) کامنتها را صریحاً ممنوع میکند. اگر در فایلهای تنظیمات به کامنت نیاز دارید، به صورت محلی از JSONC یا JSON5 استفاده کنید، سپس قبل از سریالایز کردن کامنتها را حذف کنید.
مقدار ریشه JSON معتبر چیست؟
هر مقدار JSON میتواند ریشه باشد: یک آبجکت {}, یک آرایه []، یک رشته، یک عدد، true، false، یا null. در عمل اکثر APIها از یک آبجکت یا آرایه در ریشه استفاده میکنند، اما هر شش نوع از نظر سینتکسی معتبر هستند.