# فرمت‌کننده JSON

URL: https://discuvr.org/json-formatter/?hl=fa
Last updated: 2026-11-07
MCP tool: `format_json`

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

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

## عملکرد

- زیباسازی با ۲ فاصله، ۴ فاصله یا تب - یا فشرده‌سازی به کوچک‌ترین شکل معتبر.
- خروجی JSON Lines: یک رکورد فشرده در هر خط، برای لاگ‌ها و قالب‌های جریانی.
- خطاهای دقیق - پیام، خط، ستون و خطوط اطراف.
- به‌صورت اختیاری کلیدهای هر شیء را مرتب می‌کند، تا دو سند بتوانند به‌طور منطقی مقایسه شوند.
- به‌صورت اختیاری کاراکترهای غیر ASCII را به \uXXXX تبدیل می‌کند، برای سیستم‌هایی که UTF-8 را پشتیبانی نمی‌کنند.
- به‌صورت اختیاری کامنت‌ها و کاماهای انتهایی را می‌پذیرد، و دقیقاً می‌گوید چه چیزی حذف شده است.
- شکل سند را گزارش می‌دهد: کلیدها، اشیاء، آرایه‌ها، عمق تودرتویی و فضای صرفه‌جویی‌شده.

## نحوه کار

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

## چرا پیام خطا مهم‌تر از قالب‌بندی است

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

## کامنت‌ها و کاماهای انتهایی

JSON هرگز هیچ‌یک از این دو را مجاز ندانسته، اما فایل‌هایی که مردم واقعاً به شما می‌دهند - tsconfig، تنظیمات VS Code، هر چیز ویرایش‌شده با دست - پر از آن‌هاست. علامت‌زدن گزینه، قبل از تجزیه آن‌ها را حذف می‌کند، و ابزار سپس می‌گوید چند کامنت و چند کاما حذف کرده است. این اختیاری است و دقیقاً گزارش می‌شود چون قالب‌بندی‌کننده‌ای که سند شما را بی‌سروصدا تغییر می‌دهد بدتر از یکی است که آن را رد می‌کند.

## کاری که انجام نمی‌دهد

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

## اعداد، کلیدهای تکراری و NaN

JSON شما تجزیه و دوباره نوشته می‌شود، پس چند چیز به شکل یکدست‌شده برمی‌گردد. اعداد دوباره نوشته می‌شوند: 1.50 به 1.5، 1E3 به 1000.0 و -0 به 0 تبدیل می‌شود، و عدد اعشاری با رقم‌هایی بیش از ظرفیت یک float شصت‌وچهار بیتی گرد می‌شود (0.1000000000000000055 به 0.1 تبدیل می‌شود). اعداد صحیح تا 4,300 رقم دقیقاً حفظ می‌شوند (طولانی‌ترها رد می‌شوند). اگر یک شیء کلیدی را تکرار کند، فقط آخرین مقدار می‌ماند، بدون هیچ هشداری. NaN، Infinity و -Infinity پذیرفته و بدون تغییر منتقل می‌شوند، هرچند JSON استاندارد (RFC 8259) آنها را مجاز نمی‌داند، و عددی بزرگ‌تر از ظرفیت float، مانند 1e400، به صورت Infinity بیرون می‌آید. اگر هر کدام از اینها برای سیستمی که داده را به آن می‌دهید مهم است، پیش از اعتماد به نتیجه‌ای بدون خطا خودتان بررسی کنید.

## سوالات

**آیا JSON من در جایی آپلود یا ذخیره می‌شود؟**

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

**چرا می‌گوید JSON من نامعتبر است درحالی‌که ویرایشگرم آن را می‌پذیرد؟**

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

**آیا می‌تواند یک فایل بزرگ را مدیریت کند؟**

تا 2,000,000 کاراکتر در هر درخواست؛ متن طولانی‌تر با ذکر طول دقیقش رد می‌شود. برای فایل‌هایی به این اندازه، یک ابزار خط فرمان مانند jq بهتر است.

**JSON Lines برای چیست؟**

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

**آیا مرتب‌سازی کلیدها داده‌های من را تغییر می‌دهد؟**

خیر. ترتیب کلیدهای یک شیء در JSON معنایی ندارد، و ترتیب آرایه - که معنادار است - هرگز لمس نمی‌شود. مرتب‌سازی وجود دارد تا بتوان دو نسخه از یک سند را بدون نویز مقایسه کرد.

**این JSON را چطور در اکسل باز کنم؟**

در اکسل Microsoft 365 آن را به صورت فایل .json ذخیره کنید و Data > Get Data > From File > From JSON را انتخاب کنید. Power Query آن را باز می‌کند: آرایه سطح بالا به شکل List دیده می‌شود، To Table آن را به ستونی از Records تبدیل می‌کند و دکمه گسترش (دو فلش) در سرستون هر کلید را به ستون جداگانه‌ای می‌برد؛ گسترش یک آرایه تودرتو برای هر عضو یک ردیف اضافه می‌کند. Power Query به یک سند JSON معتبر نیاز دارد، پس اول خطاها را همین‌جا با شماره سطر و ستون برطرف کنید و سپس خروجی زیباسازی یا کوچک‌سازی را ذخیره کنید؛ خروجی JSON Lines برای ابزارهای لاگ است. این ابزار خودش JSON را به CSV یا اکسل تبدیل نمی‌کند. نام منوها به زبان اکسل شما نمایش داده می‌شود.

**چطور JSON را از خط فرمان اعتبارسنجی یا قالب‌بندی کنم؟**

Python یک بررسی‌کننده آماده دارد: python -m json.tool data.json سند را با تورفتگی ۴ فاصله چاپ می‌کند یا با پیامی مثل Expecting ',' delimiter: line 3 column 3 متوقف می‌شود. اگر jq نصب باشد، jq . data.json سند را قالب‌بندی می‌کند و jq empty data.json فقط بررسی می‌کند و وقتی فایل معتبر باشد چیزی چاپ نمی‌کند. هیچ‌کدام کامنت یا ویرگول پایانی را نمی‌پذیرند، پس فایل تنظیماتی که آن‌ها را دارد آنجا خطا می‌دهد؛ آن را اینجا بچسبانید و "مجاز بودن کامنت‌ها و ویرگول‌های پایانی" را فعال کنید تا ببینید چه چیزی حذف شد.

**پیام "Expecting property name enclosed in double quotes" یعنی چه؟**

تجزیه‌گر منتظر کلید یک شیء بود و چیز دیگری پیدا کرد. معمولاً کلیدها داخل نقل‌قول تکی هستند یا اصلاً نقل‌قول ندارند، مثل {'name': 'Asha'} که از Python یا JavaScript کپی شده و در خط ۱، ستون ۲ متوقف می‌شود: JSON دور هر کلید و هر رشته نقل‌قول دوتایی می‌خواهد و این ابزار هرگز نقل‌قول‌ها را بازنویسی نمی‌کند، پس خودتان آن‌ها را اصلاح کنید. اگر همین پیام روی آکولاد بسته ظاهر شود، مثل {"a": 1,}، یعنی یک ویرگول پایانی وجود دارد؛ برای حذفش "مجاز بودن کامنت‌ها و ویرگول‌های پایانی" را فعال کنید. Expecting value روی True، False یا None یعنی مقدارهای Python: در JSON مقدارهای true، false و null با حروف کوچک نوشته می‌شوند. در Python، json.dumps(data) خروجی JSON معتبر می‌دهد و print(data) نمی‌دهد. خطاها دقیقاً همان‌طور که تجزیه‌گر Python می‌نویسد، به انگلیسی، نمایش داده می‌شوند تا بتوانید همان پیام را جست‌وجو کنید.

**پیام "Extra data" یعنی چه؟**

تجزیه‌گر یک مقدار کامل JSON را خوانده و بعد از آن متن بیشتری پیدا کرده است. علت‌های رایج: لاگی با قالب JSON Lines (NDJSON) که در هر خط یک شیء دارد و در خط ۲، ستون ۱ متوقف می‌شود؛ دو سند که پشت سر هم چسبانده شده‌اند؛ یا یک کامنت // بعد از آخرین آکولاد بسته که گزینه "مجاز بودن کامنت‌ها و ویرگول‌های پایانی" آن را حذف می‌کند. این ابزار هر بار یک سند را بررسی می‌کند، پس فقط یک رکورد را بچسبانید یا رکوردها را با ویرگول از هم جدا کنید و داخل [ ] بگذارید؛ با انتخاب JSON Lines دوباره هر رکورد در یک خط نوشته می‌شود.

## بیشتر در ابزارهای برنامه‌نویسان

- [قالب‌بندی‌کننده Python](https://discuvr.org/python-formatter/?hl=fa)
- [نمایش‌دهنده HTML](https://discuvr.org/html-viewer/?hl=fa)
- [ماشین‌حساب زیرشبکه IP](https://discuvr.org/ip-subnet-calculator/?hl=fa)
- [رمزگذاری / رمزگشایی](https://discuvr.org/encode-decode/?hl=fa)

## اغلب همراه با این‌ها استفاده می‌شود

- [CSV به Excel](https://discuvr.org/csv-to-excel/?hl=fa)

---

Part of Discuvr (https://discuvr.org/): Discuvr is a collection of free, focused tools for day-to-day professional work - office and data utilities, legal and compliance helpers, privacy and security checks, and developer formatters. Every tool has its own page, and most can also be called from ChatGPT or Claude over MCP.
