یک فایل JSON را بدون آپلود قالببندی کنید
فایل JSON را انتخاب کنید، خروجی خوانا را برگزینید و مگر اینکه پروژه تورفتگی دیگری بخواهد از دو فاصله استفاده کنید. سند اعتبارسنجی میشود، فضای خالی اختیاری بازنویسی میشود و یک فایل .json جدید بهصورت محلی ساخته میشود، بدون اینکه محتوایش به سروری فرستاده شود.
یک سند JSON با کدگذاری UTF-۸ تا ۲۵ مگابایت. بایتهای آن در همین تب مرورگر میمانند.
نتیجهها بدون تضمین درستی ارائه میشوند. روش و منابع در پایین صفحه منتشر شدهاند تا بتوانید محاسبه را بررسی کنید.
حالت خوانا شکست خط و تورفتگی را فقط بیرون از رشتههای JSON درج میکند.
توکنهای عددی، ترتیب کلیدها، کلیدهای تکراری و شکل نوشتاری escape های رشتهها بدون تغییر میمانند.
UTF-۸ نامعتبر یا JSON نامعتبر بهجای بازنویسی جزئی رد میشود.
چگونگی کار
مراحل انجام کار
- فایل را بهصورت UTF-۸ سختگیرانه بخوانید. یک نشانهٔ ترتیب بایت UTF-۸ در ابتدای فایل را برای سازگاری بپذیرید و مصرف کنید، اما آن را در نتیجه ننویسید.
- پیش از تولید فایل خروجی، سند کامل را بهعنوان یک مقدار JSON مطابق RFC ۸۲۵۹ اعتبارسنجی کنید. فایل خالی، UTF-۸ نامعتبر، محتوای اضافی در انتها یا اشیا، آرایهها، رشتهها، اعداد و نامهای لفظی بدشکل را رد کنید.
- منبع اعتبارسنجیشده را اسکن کنید و در این حین رشتههای نقلقولشده و escape های بکاسلش را دنبال کنید. درون رشته هر واحد کد را دقیقاً کپی کنید؛ بیرون رشته فقط فاصله، تب، بازگشت نورد (CR) و خطنو (LF) را کنار بگذارید.
- برای خروجی خوانا، تورفتگی انتخابشده را پس از باز شدن هر شیء یا آرایه و پس از هر کاما، یک فاصله پس از دونقطه، و یک خط با تورفتگی درست پیش از بسته شدن هر شیء یا آرایهٔ غیرخالی درج کنید. برای خروجی فشردهشده هیچ فضای خالی اختیاریای درج نکنید.
- متن بازنویسیشده را بهصورت UTF-۸ کدگذاری کنید، فقط در صورت انتخاب یک خطنوی پایانی اضافه کنید و یک فایل .json جدید ارائه دهید. هرگز توکنهای عددی را برای خروجی به مقادیر ممیز شناور تبدیل نکنید.
فرضها
- قالببندی همان متعارفسازی نیست. ترتیب اعضای شیء، نامهای تکراری، شکل نوشتاری اعداد و انتخاب escape های رشتهها همانطور که نویسنده نوشته میمانند، حتی جایی که تجزیهگر دیگری ممکن است آنها را نرمال یا ادغام کند.
- JSON که میان سامانههای مستقل مبادله میشود، طبق RFC ۸۲۵۹ با کدگذاری UTF-۸ است. UTF-۱۶ و صفحهکدهای قدیمی پیش از اعمال این دستور زبان، به مبدل جداگانهٔ کدگذاری متن تعلق دارند.
- تجزیهگر بومی JSON فقط بهعنوان اعتبارسنج سختگیر دستور زبان استفاده میشود. بایتهای قابل دانلود از یک اسکن توکننگهدار روی متن اصلی میآیند، نه از JSON.stringify.
- سقف ورودی ۲۵ مگابایت است. بازنویسی هر ۲۵۰٬۰۰۰ نویسه کنترل را واگذار میکند تا پیشرفت و لغو پاسخگو بمانند؛ خود اعتبارسنجی بومی عمداً به تجزیهگر بهینهشدهٔ مرورگر سپرده شده است.
پرسشهای رایج
آیا قالببندی JSON میتواند یک عدد صحیح بزرگ را گرد کند؟
این قالببند اعداد را پیش از نوشتن به مقادیر Number جاوااسکریپت تبدیل نمیکند. سند را اعتبارسنجی میکند و سپس هر توکن عددی اصلی را بدون تغییر منتقل میکند.
آیا JSON خوانا یعنی کلیدها مرتب شدهاند؟
خیر. قالببندی فضای خالی اختیاری را تغییر میدهد، نه ترتیب اعضای شیء را. ترتیب موجود و حتی نامهای تکراری اعضا در توالی اصلی خود میمانند.
منابع
روش کامل، مثال محاسبهشده و همهٔ فرضهای این نتیجه در این صفحه آمده است: قالببند JSON.