پرش به محتوا

فرمت‌دهنده JSON: فشرده‌سازی و زیباسازی JSON آنلاین رایگان

فرمت‌دهنده JSON رایگان برای فشرده‌سازی و زیباسازی JSON در لحظه. فشرده‌سازی JSON، اعتبارسنجی نحو و چاپ زیبای آن با تورفتگی مناسب. ابزار مرورگر محور سریع و امن.

فرمت‌دهنده JSON

ماشین حساب بارگذاری...
📚

مستندات

قالب‌بندی‌کننده JSON: کوچک‌سازی و زیبانویسی JSON

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

JSON چیست؟

JSON، کوتاه‌شدهٔ عبارت JavaScript Object Notation، قالبی متنی برای ذخیره و ارسال داده است. سرورهای وب از آن برای ارسال اطلاعات به برنامه‌ها و مرورگرها استفاده می‌کنند. برنامه‌ها نیز از آن برای فایل‌های تنظیمات استفاده می‌کنند. JSON داده‌ها را به‌صورت شیءهایی ذخیره می‌کند که با آکولادهای {} نوشته می‌شوند، و آرایه‌هایی که با کروشه‌های [] نوشته می‌شوند. درون یک شیء، هر بخش از داده نامی دارد که کلید نامیده می‌شود، و یک مقدار. مقدار می‌تواند یک رشته، یک عدد، true، false، null، یا شیء یا آرایه‌ای دیگر باشد.

یک شیء کوچک JSON به این شکل است:

1{
2  "name": "John Doe",
3  "age": 30,
4  "isEmployee": true
5}
6

این قالب‌بندی‌کننده JSON چگونه کار می‌کند

برخی ابزارهای JSON متن را در ساختار دادهٔ اختصاصی یک زبان برنامه‌نویسی می‌خوانند و سپس همان ساختار را دوباره به‌صورت متن می‌نویسند. این رفت‌وبرگشت می‌تواند داده‌ها را تغییر دهد. ممکن است اعداد بسیار بزرگ را بازنویسی کند، اعدادی را که برای نمایش بیش از حد بزرگ‌اند حذف کند و ترتیب کلیدها را در یک شیء تغییر دهد.

این ابزار از چنین تغییری جلوگیری می‌کند. ورودی را نویسه‌به‌نویسه می‌خواند و بررسی می‌کند که از دستور زبان JSON پیروی کند. هنگام بازنویسی خروجی، هر عدد و هر رشته را دقیقاً همان‌طور که نوشته شده و با همان ترتیب کپی می‌کند. کوچک‌سازی یا زیبانویسی یک سند هرگز عدد، کلید، ترتیب کلیدها یا کلید تکراری را تغییر نمی‌دهد.

اگر متن JSON معتبر نباشد، ابزار متوقف می‌شود و به‌جای حدس‌زدن منظور، خطا را نمایش می‌دهد.

قالب‌بندی در مرورگر انجام می‌شود. ابزار متن چسبانده‌شده را به سرور ارسال نمی‌کند. ورودی به‌عنوان یک پارامتر پرس‌وجو به نشانی وب صفحه افزوده می‌شود؛ بنابراین می‌توان سند قالب‌بندی‌شده را با یک پیوند به اشتراک گذاشت یا نشانک کرد.

چگونه JSON را کوچک‌سازی کنیم

  1. JSON را در کادر ورودی جای‌گذاری کنید.
  2. روی «کوچک‌سازی» کلیک کنید.
  3. ابزار فاصله‌ها، زبانه‌ها و شکست‌های خط میان توکن‌ها را حذف می‌کند و نتیجه را در پایین نمایش می‌دهد.
  4. برای کپی‌کردن نتیجه، روی «کپی» در بالای آن کلیک کنید.

مثال حل‌شده

پیش از مینیفای کردن:

1{
2  "name": "John Smith",
3  "age": 32,
4  "skills": [
5    "JavaScript",
6    "HTML",
7    "CSS"
8  ]
9}
10

پس از مینیفای کردن:

1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2

فرمول کوچک‌سازی JSON

فضای ذخیره‌شده با کوچک‌سازی را می‌توان به این صورت نوشت:

فضای ذخیره‌شده=(1−اندازهٔ کوچک‌شدهاندازهٔ اصلی)×100%\text{فضای ذخیره‌شده} = \left(1 - \frac{\text{اندازهٔ کوچک‌شده}}{\text{اندازهٔ اصلی}}\right) \times 100\%

در مثال بالا، نسخهٔ قالب‌بندی‌شده ۹۸ بایت و نسخهٔ کوچک‌شده ۶۷ بایت است:

(1−6798)×100%≈32%\left(1 - \frac{67}{98}\right) \times 100\% \approx 32\%

میزان صرفه‌جویی دقیق به مقدار فاصله‌های خالی و تورفتگی موجود در سند اصلی بستگی دارد. سندی با تو‌در‌تو‌بودن عمیق و تورفتگی ۴ فاصله‌ای، بیشتر از سندی که از ابتدا فشرده بوده کوچک می‌شود.

چگونه JSON را زیبانویسی کنیم

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

مثال حل‌شده

پیش از مینیفای کردن:

1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2

پس از مینیفای کردن:

1{
2  "name": "John Smith",
3  "age": 32,
4  "skills": [
5    "JavaScript",
6    "HTML",
7    "CSS"
8  ]
9}
10

یک شیء یا آرایهٔ خالی در یک خط باقی می‌ماند، مانند {} یا []، و در سه خط جداگانه شکسته نمی‌شود.

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

JSON دستور زبان سخت‌گیرانه‌ای دارد که از دستور زبان معمول زبان‌های برنامه‌نویسی سخت‌گیرانه‌تر است. این ابزار متنی را که هر یک از قوانین زیر را نقض کند رد می‌کند و به‌جای نتیجه، پیام «JSON نامعتبر» را نمایش می‌دهد:

  • نبودن ویرگول میان دو مقدار.
  • وجود ویرگول اضافی پس از آخرین عضو یک شیء یا آرایه؛ این مورد در JSON مجاز نیست، برخلاف JavaScript.
  • کلیدی که درون نقل‌قول دوتایی قرار نگرفته باشد.
  • استفاده از نقل‌قول تکی پیرامون یک رشته، به‌جای نقل‌قول دوتایی.
  • ناهماهنگ‌بودن یا نبودن کروشه‌ها و آکولادها.
  • دنبالهٔ گریز نامعتبر یا ناقص درون یک رشته، مانند یک بک‌اسلشِ تنها.
  • نویسهٔ کنترلی، مانند شکست خط یا زبانهٔ واقعی، که به‌جای نوشتن به‌شکل \n یا \t درون یک رشته تایپ شده باشد.
  • عددی با شکلی که JSON اجازه نمی‌دهد، مانند صفر پیشرو (01)، نقطهٔ اعشاری پایانی (1.) یا علامت مثبت پیشرو (+1).

JSON برای توضیحات نیز نحوی ندارد. متنی که با // یا /* شروع شود، بخشی از دستور زبان JSON نیست؛ بنابراین جای‌گذاری JSON حاوی توضیحات، به‌جای JSONی که توضیحاتش بی‌سروصدا حذف شده باشد، خطای «JSON نامعتبر» ایجاد می‌کند. برای قالب‌بندی چنین فایلی، ابتدا توضیحات را حذف کنید.

موارد استفاده از قالب‌بندی‌کننده JSON

  • توسعهٔ وب: خواندن پاسخ‌های API هنگام اشکال‌زدایی و کوچک‌سازی فایل‌های پیکربندی پیش از استقرار.
  • توسعهٔ API: بررسی درست‌ساختار بودن بدنهٔ درخواست یا پاسخ به‌عنوان JSON.
  • تحلیل داده: تبدیل یک خروجی فشردهٔ JSON به چیدمانی خوانا برای بررسی.
  • فایل‌های پیکربندی: زیبانویسی فایل پیکربندی پیش از ویرایش دستی و سپس کوچک‌سازی دوبارهٔ آن.

جایگزین‌ها

ویرایشگرهای کد مانند Visual Studio Code می‌توانند فایل‌های JSON را بدون خروج از ویرایشگر قالب‌بندی کنند. ابزارهای خط فرمان مانند jq نیز می‌توانند JSON را به‌عنوان بخشی از یک اسکریپت قالب‌بندی و پالایش کنند. زبان‌های برنامه‌نویسی کتابخانه‌های JSON هم دارند؛ برای نمونه ماژول json در Python یا شیء داخلی JSON در JavaScript که بیشتر برنامه‌ها از آن برای تجزیهٔ JSON در ساختارهای دادهٔ اختصاصی خود استفاده می‌کنند. یک قالب‌بندی‌کنندهٔ آنلاین مانند این ابزار زمانی مفید است که بررسی سریع و موردی لازم باشد و نصب هیچ ابزاری مطلوب نباشد.

تاریخچهٔ JSON

داگلاس کراکفورد JSON را در اوایل دههٔ ۲۰۰۰ بر اساس شیوهٔ نوشتن لفظ‌های شیء در JavaScript تعریف کرد، اما آن را طوری طراحی کرد که هر زبان برنامه‌نویسی بتواند آن را بخواند و بنویسد. این قالب نخستین‌بار حدود ۲۰۰۱ به‌صورت عمومی مستند شد و بعدتر به‌ترتیب به‌عنوان RFC ۴۶۲۷ در (۱۱٬۸۰۰ cm) ۲۰۰۶، به‌عنوان ECMA-۴۰۴ در (۱٬۰۳۰ cm) ۲۰۱۳ و به‌عنوان RFC ۸۲۵۹ در (۲۱٬۰۰۰ cm) ۲۰۱۷ استاندارد شد. با گسترش APIهای وب در دههٔ ۲۰۰۰، JSON جای XML را به‌عنوان رایج‌ترین قالب برای ارسال داده میان سرورها و مرورگرها گرفت؛ عمدتاً چون کوتاه‌تر است و مستقیماً با ساختارهای داده‌ای که از پیش در JavaScript ساخته شده‌اند نگاشت می‌شود. با بزرگ‌تر و تو‌در‌تو‌تر شدن اسناد JSON، ابزارهای قالب‌بندی و اعتبارسنجی نیز پدید آمدند.

سؤالات رایج

آیا کوچک‌سازی، توضیحات را از JSON حذف می‌کند؟ خیر. JSON نحوی برای توضیحات ندارد و این ابزار نیز چنین نحوی به آن اضافه نمی‌کند. اگر ورودی شامل توضیحاتی به سبک // یا /* باشد، ابزار به‌جای قالب‌بندی آن، خطای «JSON نامعتبر» گزارش می‌کند. پیش از جای‌گذاری متن، توضیحات را حذف کنید.

آیا قالب‌بندی، اعداد یا ترتیب کلیدهای من را تغییر می‌دهد؟ خیر. ابزار هر عدد و رشته را دقیقاً همان‌طور که نوشته شده کپی می‌کند و کلیدها را، از جمله کلیدهای تکراری در صورت وجود، در ترتیب اصلی نگه می‌دارد.

زیبانویس از چه تورفتگی‌ای استفاده می‌کند؟ دو فاصله در هر سطح تو‌در‌تو‌بودن، همراه با یک فاصله پس از هر دونقطه.

آیا داده‌های JSON من به سرور ارسال می‌شود؟ خیر. قالب‌بندی در مرورگر انجام می‌شود. متنی که جای‌گذاری می‌کنید به‌عنوان پارامتر پرس‌وجوی json در نشانی اینترنتی صفحه کپی می‌شود تا بتوان صفحه را به اشتراک گذاشت یا نشانک کرد. هیچ چیزی بارگذاری نمی‌شود.

آیا محدودیت اندازه وجود دارد؟ محدودیت ثابتی وجود ندارد، اما هنگام تجزیه، کل سند در حافظه نگه داشته می‌شود؛ بنابراین فایلی بسیار بزرگ، در حد چندین مگابایت، ممکن است روی دستگاهی قدیمی کند باشد.

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

منابع

  1. "Introducing JSON." JSON.org، https://www.json.org/json-en.html.
  2. برای، تی.، ویراستار. "The JavaScript Object Notation (JSON) Data Interchange Format."، RFC ۸۲۵۹، IETF، دسامبر ۲۰۱۷، https://www.rfc-editor.org/rfc/rfc8259.
  3. "ECMA-404: The JSON Data Interchange Syntax."، Ecma International، https://www.ecma-international.org/publications-and-standards/standards/ecma-404/.
  4. "JSON."، MDN Web Docs، Mozilla، https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON.