متن 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

اعتبارسنجی JSON

JSON را جای‌گذاری کنید تا با استاندارد سنجیده شود؛ اگر مشکلی باشد، پیام دقیق خطا و موقعیت آن را می‌بینید.

JSON ورودی

اعتبارسنجی آنلاین JSON

یک کامای سرگردان کافی است تا API درخواستی را رد کند یا فایل پیکربندی بارگذاری نشود، و خطایی که نمایش داده می‌شود همیشه کمکی نمی‌کند. جای‌گذاری سند در اعتبارسنج در یک ثانیه نشان می‌دهد JSON معتبر است یا نه، و اگر نیست، دقیقاً کجا خراب شده است.

این صفحه فرمت‌کننده JSON را باز می‌کند که با هر تغییر، سند را با تجزیه‌گر استاندارد مرورگر اعتبارسنجی می‌کند و اگر معتبر باشد، آن را فرمت می‌کند.

خطاهایی که اعتبارسنج بیشتر از همه پیدا می‌کند

اشتباهنامعتبرمعتبر
کامای انتهایی{"a": 1,}{"a": 1}
کوتیشن تکی{'a': 'x'}{"a": "x"}
کلید بدون کوتیشن{a: 1}{"a": 1}
کامای از قلم افتاده{"a": 1 "b": 2}{"a": 1, "b": 2}
کامنت{"a": 1 // note}کامنت را حذف کنید
خط جدید escape‌نشده درون رشتهشکست خط درون "…""line 1\nline 2"
مقدارهای خاصNaN، undefinednull یا یک عدد

خواندن پیام خطا

مرورگرها خطاهای JSON را همراه با موقعیت گزارش می‌کنند؛ برای مثال «Expected double-quoted property name in JSON at position 12»، یعنی در موقعیت ۱۲ نام ویژگی با کوتیشن دوتایی انتظار می‌رفت. شمارش موقعیت از صفر شروع می‌شود، پس به نویسه‌ای اشاره می‌کند که تجزیه‌گر در آن متوقف شده است. اشتباه واقعی معمولاً درست پیش از آن است: کامای قبل از آکولاد بسته، یا کوتیشنی که باید دوتایی می‌بود.

معتبر بودن به معنای درست بودن نیست

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

اعتبارسنجی در کد

  • JavaScript: JSON.parse(text) درون try/catch
  • Python: json.loads(text)، یا python -m json.tool file.json در خط فرمان
  • jq: jq empty file.json اگر فایل معتبر باشد چیزی چاپ نمی‌کند
  • PHP: json_validate($text) از PHP 8.3 به بعد

وقتی JSON معتبر شد، فشرده‌سازی JSON فاصله‌های اضافه را برای انتقال حذف می‌کند.

آموزش‌های مرتبط