tigtools

اعتبارسنج JSON

JSON را جای‌گذاری کنید تا نحو آن بر اساس استاندارد JSON بررسی شود. خطاها با نشانگر و توضیح ساده مشخص می‌شوند.

در مرورگر شما اجرا می‌شود بدون ثبت‌نام

نتیجه به محض جای‌گذاری JSON اینجا نمایش داده می‌شود.

نحوه استفاده

  1. JSON خود را در کادر قرار دهید، فایلی را باز کنید یا «یک نمونه را امتحان کنید» را بزنید تا گزارش خطا را ببینید.
  2. نتیجه را بخوانید: پیام سبز برای JSON معتبر، یا نخستین خطا همراه با خط، ستون و نشانگری زیر محل مشکل.
  3. خطایی را که راهنما توضیح میدهد برطرف و دوباره بررسی کنید؛ نتیجه همزمان با تایپ شما بهروز میشود.
  4. برای JSON معتبر، آمار را بخوانید: نوع ریشه، تعداد کلیدها، عمق تودرتو و اندازه به بایت.

نحوه کار

اعتبارسنج، نحو را بر اساس استاندارد JSON (RFC 8259 / ECMA-404) و با استفاده از تجزیه‌گر JSON مرورگر بررسی می‌کند؛ بنابراین سندی که از این بررسی بگذرد توسط JSON.parse جاوااسکریپت و تجزیه‌گرهای سازگار با استاندارد در زبان‌های دیگر پذیرفته می‌شود. اگر تجزیه با خطا مواجه شود، یک بررسی‌کننده دقیق که برای این ابزار نوشته شده است متن را یک‌بار پیمایش می‌کند تا اولین خطا و شماره دقیق خط و ستون آن را پیدا کند، سپس همان خط را با نشانگر ^ زیر محل مشکل نمایش می‌دهد.

نکته‌ها بر اشتباه‌هایی متمرکزند که افراد هنگام نوشتن دستی JSON یا کپی کردن آن از جاوااسکریپت واقعاً مرتکب می‌شوند: ویرگول بعد از آخرین مورد، رشته‌های داخل گیومه تکی، کلیدهای بدون گیومه، توضیح‌های // یا /* */، مقدارهایی مانند NaN، Infinity یا undefined، شکستن خط خام داخل رشته‌ها، و دو سند JSON که پشت سر هم جای‌گذاری شده‌اند (مانند فایل‌های JSON Lines). فقط اولین خطا گزارش می‌شود، چون یک اشتباه اغلب همه چیزِ بعد از خود را نامفهوم می‌کند.

این ابزار فقط نحو را بررسی می‌کند. اعتبارسنجی در برابر JSON Schema انجام نمی‌دهد، بنابراین نمی‌تواند تشخیص دهد که آیا یک فیلد الزامی جا افتاده است یا نه. همچنین درباره کلیدهای تکراری هشدار نمی‌دهد: استاندارد آن‌ها را مجاز می‌داند و بیشتر تجزیه‌گرها آخرین مقدار را نگه می‌دارند. آمار، کلیدها را در هر شیء و در هر سطح می‌شمارد؛ عمق برای یک شیء یا آرایه تخت ۱ است و با هر سطح تودرتو یک واحد بیشتر می‌شود.

نمونه‌ها

پیکربندی کپیشده از JavaScript

{name: 'demo', debug: true,} در خط 1، ستون 2 با خطای «کلیدهای شیء باید داخل گیومه دوتایی باشند» ناموفق است. پس از گیومهدار کردن کلید، اجرای بعدی به رشته با گیومه تکی و سپس به ویرگول انتهایی اشاره میکند.

فایل لاگ با یک شیء در هر خط

چسباندن دو خط مانند {"id":1} و {"id":2} خطای «محتوای بیشتر پس از پایان مقدار JSON» را در خط 2 گزارش میکند. هر خط بهتنهایی JSON معتبر است (JSON Lines)، اما با هم باید داخل [ ] قرار بگیرند و با ویرگول از هم جدا شوند.

بررسی payload یک API

پاسخ 2 MB در لحظهای اعتبارسنجی میشود و نوع ریشه: آرایه، 1,500 مورد سطح بالا و عمق تودرتو 4 را نشان میدهد؛ یک بررسی سریع پیش از نوشتن کد بر اساس آن.

پرسش‌های متداول

آیا این ابزار بر اساس JSON Schema اعتبارسنجی میکند؟

خیر. این ابزار فقط بررسی میکند که متن JSON خوشساختار است. بررسی فیلدهای ضروری، نوعها یا قالبها به یک اعتبارسنج JSON Schema نیاز دارد که این ابزار شامل آن نیست.

چرا فقط یک خطا نمایش داده میشود؟

پس از نخستین خطای نحوی، تجزیهگر نمیتواند منظور نویسنده را بداند؛ بنابراین «خطاهای» بعدی اغلب پیامد همان خطای اول هستند. مشکل گزارششده را برطرف کنید تا خطای بعدی، در صورت وجود، بلافاصله ظاهر شود.

آیا کامنتها یا ویرگول انتهایی هرگز معتبر هستند؟

در JSON خیر. قالبهایی مانند JSON5 و JSONC (که در فایلهای تنظیمات برخی ویرایشگرها استفاده میشوند) آنها را مجاز میدانند، اما تجزیهگرهای استاندارد JSON آنها را رد میکنند؛ بنابراین اینجا بهعنوان خطا گزارش میشوند.

آیا یک مقدار تنها مانند 42 یا "hello" معتبر JSON است؟

بله. مطابق RFC 7159، هر مقدار JSON میتواند ریشه باشد، نهتنها شیءها و آرایهها. برخی ابزارها و APIهای قدیمیتر همچنان در سطح بالا شیء یا آرایه انتظار دارند.

چرا ستون ممکن است با ستون ویرایشگر من متفاوت باشد؟

ستونها بر اساس واحدهای کد UTF-16 شمارش میشوند؛ همانطور که JavaScript طول رشته را میشمارد. ایموجی و برخی نویسههای کمیاب دو واحد محسوب میشوند و tab یک ستون محسوب میشود، در حالی که ویرایشگرها ممکن است آن را عریضتر نمایش دهند.

حریم خصوصی

اعتبارسنجی کاملاً در مرورگر شما اجرا می‌شود. JSON که جای‌گذاری یا باز می‌کنید بارگذاری، ذخیره یا در داده‌های تحلیلی ثبت نمی‌شود.