تبدیل JSON به Excel: راهنمای کامل ابزار flatten کردن دادههای سلسلهمراتبی
ابزار JSON to Excel یک صفحهی تخصصی در وبسایت ماست که به شما امکان میدهد یک فایل JSON را آپلود کرده و آن را به یک فایل Excel با فرمت XLSX تبدیل کنید. تفاوت اصلی این صفحه با ابزارهای مشابه مانند CSV به Excel در این است که JSON ذاتاً یک ساختار سلسلهمراتبی (تو در تو) دارد: میتواند شامل اشیاء (objects)، آرایهها (arrays)، اعداد، مقادیر بولی و null باشد. یک صفحهگسترده (spreadsheet) تخت نمیتواند مستقیماً این سلسلهمراتب را نمایش دهد. بنابراین این ابزار یک قانون flatten کردن (مسطحسازی) را اعمال میکند: کلیدهای تو در تو با نامهای نقطهگذاری شده (dot‑path) نمایش داده میشوند (مثلاً address.city). این در حالی است که هنگام تبدیل از CSV یا Excel نیازی به این کار نیست زیرا آنها از قبل تخت هستند.
فرمت هدف، XLSX، یک workbook XML فشرده است که میتواند به طور بومی انواع داده مانند اعداد و مقادیر بولی را ذخیره کند (برخلاف CSV که همه چیز را به متن تبدیل میکند). اما این ابزار هیچ فرمول یا سبکبندی سلولی را حفظ نمیکند؛ فقط دادههای ثابت و قابل مشاهده از منبع JSON را مینویسد.
ورودی و خروجی
- ورودی: یک فایل JSON تکی (در هر بار فقط یک فایل). JSON باید «جدولشکل» باشد: یک آرایه از اشیاء یا یک آرایه از آرایهها.
- خروجی: یک فایل XLSX. ابزار همچنین یک پیشنمایش، تعداد سطرها و ستونهای جدول تبدیلشده و اندازه فایل خروجی را نمایش میدهد.
قوانین و موارد مرزی
- هنگام تبدیل JSON به جدول، ابزار یک آرایه از اشیاء را به عنوان سطر در نظر میگیرد (هر شیء یک سطر میشود، کلیدهای آن عنوان ستون). کلیدهای اشیاء تو در تو با مسیرهای نقطهگذاری flatten میشوند (مثلاً
address.city). آرایههای آرایهها نیز به عنوان سطرهای جدول نگه داشته میشوند. - فقط اولین کاربرگ (worksheet) تولید میشود؛ هیچ برگهی چندگانه، فرمول یا قالببندی از JSON منتقل نمیشود.
- پیامهای خطایی که ممکن است ظاهر شوند:
- «ابتدا یک فایل انتخاب کنید.»
- «یک فایل CSV، JSON یا XLSX انتخاب کنید.»
- «این فایل بیش از حد بزرگ است. از فایلی زیر ‹max› استفاده کنید.»
- «این JSON نامعتبر است یا جدولشکل نیست.»
- «این فایل هیچ سطر جدولی ندارد.»
- «این جدول بیش از ‹max› سطر دارد.»
- «این جدول بیش از ‹max› ستون دارد.»
- «تبدیل لغو شد.»
- «این تبدیل خیلی طول میکشد. فایل کوچکتری امتحان کنید.»
- ابزار فرمولها را محاسبه نمیکند و هیچ قالببندی احتمالی را در فایل Excel ورودی (که در اینجا کاربرد ندارد) حفظ نمیکند.
چه کسی به این ابزار نیاز دارد؟
- شخصی که دادههای سلسلهمراتبی در یک فایل JSON دارد (مثلاً از یک API یا یک پیکربندی) و میخواهد آنها را به عنوان یک صفحهگسترده تحلیل یا به اشتراک بگذارد.
- تحلیلگر داده که نیاز دارد اشیاء JSON تو در تو را بدون نوشتن کد سفارشی flatten کند.
- هرکسی که میخواهد انواع داده عددی و بولی را در خروجی (XLSX) حفظ کند به جای اینکه همه چیز را به رشته متنی تبدیل کند (همانطور که CSV انجام میدهد).
- عضو تیمی که فایلهای JSON دریافت میکند و باید با دیگرانی که از Excel استفاده میکنند همکاری کند.
ساختار JSON و چالش flatten کردن
JSON (JavaScript Object Notation) یک قالب تبادل داده سبک است که بر پایه دو ساختار بنا شده: اشیاء (مجموعهای از جفتهای کلید/مقدار) و آرایهها (لیست مرتبی از مقادیر). مقادیر میتوانند رشته، عدد، بولی، null، شیء یا آرایه باشند. این انعطافپذیری باعث میشود JSON برای ذخیرهسازی دادههای پیچیده مانند پاسخ APIها، پیکربندی برنامهها یا خروجی پایگاههای داده غیررابطهای ایدهآل باشد.
اما یک صفحهگسترده Excel یک جدول دو بعدی تخت است: هر سلول یک مقدار دارد، سطرها و ستونها ساختار ثابتی دارند. برای تبدیل JSON به چنین جدولی، باید سلسلهمراتب را مسطح کرد. قانون flatten کردن استاندارد که این ابزار به کار میبرد «مسیر نقطهگذاری» (dot‑path) است. مثلاً اگر یک شیء JSON داشته باشیم:
{
"name": "علی",
"address": {
"city": "تهران",
"zip": 12345
},
"phones": ["09121111111", "02122222222"]
}
ابزار این را به یک ردیف با ستونهای name، address.city، address.zip و phones تبدیل میکند. آرایههای درون اشیاء (مانند phones) نیز به صورت یک رشتهی متنی نمایش داده میشوند، مگر اینکه خود آرایه از اشیاء تشکیل شده باشد که در آن صورت flatten شدن بیشتر رخ میدهد.
نکته مهم: ابزار فقط آرایههای سطح بالای JSON را به عنوان منبع ردیفها در نظر میگیرد. اگر JSON شما یک شیء واحد باشد (نه آرایه)، ابزار آن را «جدولشکل» نمیداند و خطای «این JSON نامعتبر است یا جدولشکل نیست» را نمایش میدهد. همچنین اگر آرایه از آرایهها داشته باشید (مثلاً [,])، هر آرایه داخلی به عنوان یک سطر و مقادیر آن به عنوان ستونهای بدون نام نمایش داده میشوند.
انواع داده در JSON و نگاشت به Excel (XLSX)
یکی از مزایای اصلی استفاده از XLSX به جای CSV، حفظ انواع دادههاست. JSON انواع داده مشخصی دارد: اعداد (integer/float)، بولی (true/false)، null، رشتهها، اشیاء و آرایهها. ابزار این انواع را به صورت زیر به سلولهای Excel نگاشت میکند:
| نوع JSON | نوع سلول Excel | توضیح |
|---|---|---|
| عدد (مثلاً 42 یا 3.14) | عدد | Excel آن را به عنوان عدد ذخیره میکند و میتوان از آن در فرمولها استفاده کرد. |
| بولی (true/false) | بولی | Excel مقادیر TRUE و FALSE را نگه میدارد. |
| null | سلول خالی | مقدار null به یک سلول خالی تبدیل میشود (نه رشتهی "null"). |
| رشته | متن | رشتهها بدون تغییر ذخیره میشوند. |
| شیء یا آرایه تو در تو | رشته | اشیاء و آرایههایی که flatten نمیشوند (مثلاً آرایههای مقداردهی اولیه) به صورت JSON stringified در یک سلول متنی قرار میگیرند. |
این رفتار باعث میشود که خروجی XLSX از نظر نوع داده بسیار دقیقتر از CSV باشد. برای مثال، اگر فایل JSON شما شامل اعدادی مانند "price": 19.99 باشد، در Excel این مقدار به صورت عدد 19.99 ذخیره میشود و میتوانید مستقیماً روی آن محاسبات انجام دهید. در CSV همان مقدار به صورت رشتهی "19.99" ذخیره میشد.
فرمت فایل XLSX: یک workbook XML فشرده
وقتی ابزار خروجی XLSX تولید میکند، در واقع یک آرشیو ZIP حاوی چندین فایل XML را میسازد. استاندارد Open XML (که توسط مایکروسافت تعریف شده) ساختار یک workbook را مشخص میکند: فایل xl/workbook.xml حاوی تعریف workbook و برگهها، xl/worksheets/sheet1.xml حاوی دادههای کاربرگ، و xl/styles.xml (که در این ابزار حداقل استفاده میشود) برای قالببندی. ابزار ما فقط یک کاربرگ (sheet1) ایجاد میکند و هیچ فرمول، جدول محوری یا نموداری نمیسازد. همچنین سبکبندی پیشفرض Excel (فونت، اندازه، حاشیه) را اعمال نمیکند؛ فقط دادههای خام را با نوع دادهی مناسب مینویسد.
محدودیت اندازه فایل JSON ورودی که ابزار میپذیرد، توسط پیام خطا مشخص شده: «این فایل بیش از حد بزرگ است. از فایلی زیر ‹max› استفاده کنید.» (max معمولاً 5 مگابایت یا بیشتر است، اما دقیقاً مشخص نیست). همچنین اگر جدول حاصل بیش از حداکثر سطر (مثلاً ۱ میلیون سطر) یا ستون (مثلاً ۱۶۳۸۴ ستون) داشته باشد، خطا میدهد. این محدودیتها ریشه در محدودیتهای خود فرمت XLSX و همچنین مرورگر دارند.
پردازش سمت کلاینت برای حفظ حریم خصوصی دادهها
یکی از ویژگیهای کلیدی این ابزار این است که تبدیل کاملاً در مرورگر شما انجام میشود. هیچ فایلی به سرور ارسال نمیشود. این یعنی دادههای شما محرمانه باقی میمانند – مناسب برای فایلهای JSON حاوی اطلاعات حساس مانند کلیدهای API، دادههای مشتری یا پیکربندیهای داخلی. ابزار از JavaScript برای خواندن فایل JSON ورودی از طریق File API مرورگر، flatten کردن آن، و تولید فایل XLSX با استفاده از کتابخانههای سمت کلاینت (مانند SheetJS/xlsx یا مشابه) استفاده میکند. این روش برای کاربران نهایی سریع و ایمن است، اما محدودیتهایی دارد: فایلهای بسیار بزرگ ممکن است باعث کندی مرورگر یا خطای «این تبدیل خیلی طول میکشد» شوند.
محدودیتهای جدول تخت و سناریوهای پیچیده
یک جدول Excel نمیتواند مستقیماً ساختارهای سلسلهمراتبی مثل آرایههای تو در تو از اشیاء را نمایش دهد. برای مثال، فرض کنید JSON شما شامل یک آرایه از سفارشات است و هر سفارش شامل یک آرایه از آیتمهاست. ابزار با flatten کردن، یک سطر برای هر آیتم ایجاد میکند و اطلاعات تکراری سفارش را در هر سطر تکرار میکند. این کار باعث افزایش سطرها و کاهش خوانایی میشود اما تنها راه موجود برای نمایش دادههای غیرتخت در Excel است.
همچنین اگر JSON شما دارای کلیدهای تکراری در سطوح مختلف باشد، flatten کردن با dot‑path میتواند موجب ایجاد نامهای ستون طولانی و مبهم شود. مثلاً data.items.name یا response.results.user.address.street. کاربران باید با این نامها کار کنند و ممکن است نیاز به تغییر نام ستونها پس از تبدیل داشته باشند.
سوالات متداول (FAQ)
۱. آیا میتوانم چندین فایل JSON را همزمان تبدیل کنم؟
خیر. ابزار فقط یک فایل JSON را در هر بار میپذیرد. برای تبدیل چند فایل باید آنها را جداگانه آپلود کنید.
۲. اگر فایل JSON من حاوی آرایهای از اشیاء با ساختارهای متفاوت باشد چه اتفاقی میافتد؟
ابزار بر اساس کلیدهای اولین شیء در آرایه، ستونها را مشخص میکند. اگر شیءهای بعدی کلیدهای جدیدی داشته باشند، آن کلیدها نادیده گرفته میشوند یا در برخی پیادهسازیها ستونهای جدیدی اضافه میشود. توصیه میشود قبل از تبدیل، ساختار یکسانی بین اشیاء داشته باشید.
۳. آیا میتوانم از این ابزار برای تبدیل فایل JSON بزرگ (بیش از ۱۰۰ مگابایت) استفاده کنم؟
احتمالاً خیر. ابزار محدودیت اندازه دارد و اگر فایل بیش از حد بزرگ باشد، با خطای «این فایل بیش از حد بزرگ است» مواجه میشوید. همچنین پردازش فایلهای بزرگ ممکن است باعث کندی مرورگر یا خطای تایماوت شود.
۴. چرا خروجی XLSX شامل فرمولهای Excel نیست؟
زیرا ابزار فقط دادههای ثابت JSON را مینویسد. فرمولها بخشی از قالببندی هستند و در JSON اولیه وجود ندارند. اگر نیاز به فرمول دارید، میتوانید پس از دانلود فایل، فرمولها را به صورت دستی در Excel اضافه کنید.
۵. آیا میتوانم ستونها را پس از تبدیل دوباره مرتب کنم؟
ابزار ترتیب ستونها را بر اساس ترتیب کلیدها در اولین object JSON تعیین میکند. اگر نیاز به ترتیب خاصی دارید، میتوانید فایل JSON را قبل از تبدیل با یک ادیتور مرتب کنید.
۶. اگر JSON من حاوی یک آرایه خالی باشد چه میشود؟
آرایههای خالی در سطح اول باعث خطای «این فایل هیچ سطر جدولی ندارد» میشوند. آرایههای خالی درون اشیاء به صورت سلول خالی نمایش داده میشوند.
این ابزار یک راه حل سریع و بدون کدنویسی برای تبدیل JSON به Excel است، اما درک محدودیتهای flatten کردن و فرمت XLSX به شما کمک میکند از آن به طور مؤثرتر استفاده کنید. همیشه قبل از تبدیل، از ساختار JSON خود مطلع باشید و مطمئن شوید که «جدولشکل» است.