ویژگیهای اصلی تبدیل CSV به JSON
این صفحه برای کار خاصی طراحی شده است: تبدیل فایلهای CSV به JSON، اما با چند تفاوت اساسی نسبت به ابزارهای مشابه. نخستین و مهمترین نکته این است که CSV همه چیز را به صورت متن ساده ذخیره میکند، در حالی که JSON از انواع دادههای مختلف مانند عدد، بولی (true/false)، null و ساختارهای تو در تو پشتیبانی میکند. هر فیلد CSV هنگام ورود به ابزار یک رشته (string) محسوب میشود. بنابراین اگر فایل CSV شما شامل قیمتها (مثلاً ۱۲۹۹۰)، تاریخها (۲۰۲۴-۰۳-۱۵) یا کدهای پستی با صفر پیشرو (۰۲۱۳۴) باشد، این مقادیر به صورت خودکار به عدد یا تاریخ تبدیل نمیشوند. آنها در خروجی JSON به عنوان رشته باقی میمانند، مگر اینکه بعد از دانلود به صورت دستی نوع آنها را تغییر دهید.
دومین تفاوت کلیدی: CSV یک فرمت کاملاً تخت (flat) است. هر سطر یک ردیف از جدول و هر ستون یک فیلد ساده است. بنابراین خروجی JSON حاصل یک آرایه از اشیاء تخت خواهد بود، جایی که هر شیء دارای کلیدهای یکسان است. برای ایجاد JSON تو در تو (مثلاً یک شیء شامل یک آرایه از اشیاء دیگر) به قوانین اضافی نیاز دارید که این ابزار آنها را اعمال نمیکند. برای مثال، اگر فایل CSV شما شامل ستونی به نام «آدرس» با مقادیر «خیابان، شهر، کدپستی» باشد، این ابزار آن را به یک رشته واحد تبدیل میکند و آن را به شیء جداگانهای برای هر بخش تجزیه نمیکند.
سومین تفاوت مربوط به جداکننده (delimiter) است. برخلاف صفحات مشابه که ورودی JSON یا Excel را پردازش میکنند و نیازی به انتخاب جداکننده ندارند، اینجا باید مشخص کنید که فایل CSV شما از کاما (,) سمیکالن (;) یا تب (\t) به عنوان جداکننده استفاده میکند. انتخاب اشتباه جداکننده باعث میشود ابزار نتواند فایل را به درستی تجزیه کند و خطای «این CSV قابل تجزیه نیست» را نمایش دهد.
چهارمین نکته: کاماهای تو در تو درون فیلدهای نقلقولدار و خطوط جدید داخل سلولها از منابع اصلی شکست در تبدیل CSV به JSON هستند. قوانین نقلقول در CSV استاندارد واحد و جهانی ندارند. بسیاری از فایلهای CSV تولید شده توسط نرمافزارهای مختلف، نقلقولها را به درستی مدیریت نمیکنند. برای مثال، اگر یک سلول شامل کاما باشد (مثلاً «تهران، خیابان ولیعصر»)، باید کل سلول درون نقلقول (double quote) قرار گیرد. اگر این قانون رعایت نشود، ابزار آن را به عنوان ستونهای جداگانه تفسیر میکند. همچنین خطوط جدید داخل سلولها که با نقلقول محصور نشده باشند، به عنوان ردیفهای جدید در نظر گرفته میشوند و ساختار جدول را خراب میکنند.
نحوه عملکرد ابزار: ورودی، خروجی و تنظیمات
ابزار به گونهای طراحی شده است که فرمت فایل ورودی را به طور خودکار تشخیص میدهد. اگر یک فایل CSV، JSON یا XLSX آپلود کنید، آن را به عنوان یک جدول تفسیر میکند. اما سناریوی اصلی و پرکاربرد آن تبدیل CSV به JSON است. مراحل کار به این ترتیب است:
۱. فایل CSV خود را با کشیدن و رها کردن (drag & drop) روی ناحیه مشخص شده یا با کلیک روی دکمه «انتخاب فایل» بارگذاری میکنید. ۲. در بخش انتخاب فرمت خروجی، گزینه «JSON» را انتخاب میکنید. ۳. اگر فایل شما از جداکنندهای غیر از کاما استفاده میکند، گزینه مناسب (سمیکالن یا تب) را انتخاب میکنید. فایلهای CSV استاندارد معمولاً از کاما استفاده میکنند، اما بسیاری از سیستمها به دلیل مشکلات محلی (مثلاً در کشورهایی که کاما به عنوان جداکننده اعداد استفاده میشود) از سمیکالن استفاده میکنند. ۴. پس از بارگذاری، ابزار پیشنمایشی از دادههای تبدیلشده را به شما نشان میدهد. این پیشنمایش شامل تعداد ردیفها و ستونهای جدول و همچنین اندازه فایل خروجی است. ۵. اگر همه چیز درست به نظر میرسد، روی دکمه «دانلود» کلیک کرده و فایل JSON حاصل را دریافت میکنید.
نکته مهم: ابزار هیچ فرمول یا قالببندی را اجرا نمیکند. در CSV اصلاً فرمول وجود ندارد (برخلاف Excel که میتواند شامل فرمولهای محاسباتی باشد). همچنین قالببندی مانند رنگ سلول، اندازه فونت یا ترازبندی در CSV ذخیره نمیشود. بنابراین خروجی JSON فقط شامل دادههای خام و متنی فایل CSV خواهد بود.
ابزار به صورت کاملاً سمت کلاینت (client‑side) در مرورگر شما اجرا میشود. هیچ دادهای به سرور ارسال نمیشود. این ویژگی برای کسانی که با اطلاعات حساس سروکار دارند (مانند لیست مشتریان، دادههای مالی یا اطلاعات پزشکی) حیاتی است. شما میتوانید با خیال راحت فایلهای محرمانه را تبدیل کنید بدون اینکه نگران نشت اطلاعات به سرورهای خارجی باشید.
سیستم نوع و یکپارچگی دادهها
یکی از بزرگترین چالشها در تبدیل CSV به JSON، مدیریت انواع داده است. CSV یک فرمت «بدون نوع» (typeless) است. یعنی هیچ راهی برای مشخص کردن اینکه یک فیلد عدد است یا تاریخ یا بولی وجود ندارد. همه چیز به صورت متن ذخیره میشود. در مقابل، JSON انواع دادههای مختلفی را پشتیبانی میکند و بسیاری از کتابخانهها و ابزارهای پردازش JSON به طور خودکار سعی میکنند مقادیر را به نوع مناسب تبدیل کنند.
این ابزار به طور عمدی هیچ تبدیل خودکاری انجام نمیدهد. دلایل این کار:
- حفظ صفرهای پیشرو: شناسههایی مانند کدپستی (۰۲۱۳۴)، کد محصول (۰۰۴۲۵) یا شماره حساب بانکی (۰۰۰۱۲۳۴۵۶۷) اگر به عدد تبدیل شوند، صفرهای ابتدایی خود را از دست میدهند. این ابزار آنها را به عنوان رشته حفظ میکند، بنابراین در خروجی JSON به صورت "۰۲۱۳۴" باقی میمانند.
- جلوگیری از تبدیل ناخواسته: اگر یک فیلد حاوی شماره تلفن مانند "۰۹۱۲۳۴۵۶۷۸۹" باشد، تبدیل آن به عدد منجر به حذف صفر ابتدایی میشود. همچنین اعداد بزرگ مانند شماره کارت اعتباری (۱۶ رقمی) وقتی به عدد JSON تبدیل شوند، ممکن است دقت خود را از دست بدهند (به دلیل محدودیتهای نمایش اعداد در جاوااسکریپت).
- عدم تفسیر تاریخ: تاریخها در CSV معمولاً به صورت رشتههایی مانند "۲۰۲۴-۰۳-۱۵" یا "۱۵/۰۳/۲۰۲۴" ذخیره میشوند. این ابزار آنها را به همین صورت به عنوان رشته در JSON حفظ میکند. اگر نیاز به تبدیل آنها به فرمت استاندارد تاریخ در JSON دارید، باید پس از دانلود به صورت دستی این کار را انجام دهید.
اگر بعداً فایل JSON حاصل را در محیطی بارگذاری کنید که به طور خودکار تایپکست (type‑casting) میکند (مانند بسیاری از کتابخانههای جاوااسکریپت یا پایتون)، صفرهای پیشرو از دست خواهند رفت. بنابراین اگر یکپارچگی صفرها برای شما حیاتی است، یا باید از محیطی استفاده کنید که مقادیر را بدون تغییر مدیریت میکند، یا فیلدهای مربوطه را به صورت صریح به عنوان رشته در نظر بگیرید.
خطوط جدید داخل سلولها نیز به صورت \n در مقادیر رشتهای JSON حفظ میشوند. این مورد هنگام کار با فیلدهای متنی چندخطی (مانند توضیحات محصول) اهمیت دارد.
مشکلات رایج در فایلهای CSV و پیامهای خطا
ابزار برای مدیریت شرایط مختلف خطا طراحی شده است. درک این پیامها به شما کمک میکند سریعتر مشکل را تشخیص دهید:
| شرایط خطا | پیام نمایش داده شده |
|---|---|
| فایل CSV قابل تجزیه نیست (نقلقول نادرست، تعداد ستون نامتناقض) | "این CSV قابل تجزیه نیست." |
| فایل هیچ ردیف دادهای ندارد (فقط هدر یا خالی) | "این فایل هیچ ردیف جدولی ندارد." |
| تعداد ردیفها بیش از حد مجاز | "این جدول بیش از ‹max› ردیف دارد." |
| تعداد ستونها بیش از حد مجاز | "این جدول بیش از ‹max› ستون دارد." |
| اندازه فایل بیش از حد بزرگ | "این فایل بیش از حد بزرگ است. از فایلی زیر ‹max› استفاده کنید." |
| کاربر فایلی انتخاب نکرده | "ابتدا یک فایل را انتخاب کنید." |
| نوع فایل اشتباه است | "فایل CSV، JSON یا XLSX انتخاب کنید." |
| تبدیل خیلی طول میکشد | "این تبدیل خیلی طول میکشد. فایل کوچکتری امتحان کنید." |
مهمترین علت شکست در تجزیه CSV، عدم رعایت قوانین نقلقول است. اگر یک فیلد حاوی کاما، خط جدید یا نقلقول باشد، باید کل آن درون نقلقولهای دوگانه (") قرار گیرد. برای مثال:
- درست:
"تهران، خیابان ولیعصر"، شرکت الف - نادرست:
تهران، خیابان ولیعصر، شرکت الف(در این حالت «تهران» و «خیابان ولیعصر» به عنوان دو ستون جداگانه تفسیر میشوند)
اگر خودتان فایل CSV را تولید میکنید، مطمئن شوید که از یک کتابخانه یا نرمافزار استاندارد استفاده میکنید که قوانین نقلقول را به درستی رعایت میکند. اکثر نرمافزارهای صفحهگسترده مانند Excel و Google Sheets این کار را به درستی انجام میدهند، اما هنگام خروجی گرفتن از پایگاه داده یا اسکریپتهای سفارشی ممکن است مشکلاتی پیش بیاید.
تعداد ستونها در تمام ردیفها باید یکسان باشد. اگر ردیف اول (هدر) ۵ ستون داشته باشد و ردیف دوم ۶ ستون، ابزار نمیتواند جدول را تجزیه کند و خطا نمایش میدهد. همچنین ردیفهای خالی در انتهای فایل به عنوان ردیفهای جدول در نظر گرفته نمیشوند.
موارد استفاده و مخاطبان هدف
این ابزار برای گروههای مختلف کاربری طراحی شده است:
۱. توسعهدهندگان نرمافزار: رایجترین سناریو این است که یک توسعهدهنده خروجی CSV را از یک پایگاه داده یا سیستم گزارشگیری دریافت میکند و باید آن را به یک برنامه جاوااسکریپت یا API که JSON انتظار دارد، تغذیه کند. بسیاری از APIهای مدرن فقط فرمت JSON را میپذیرند، بنابراین تبدیل CSV به JSON یک نیاز روزمره است.
۲. تحلیلگران داده: یک تحلیلگر ممکن است فایل CSV قدیمی آدرسها را داشته باشد که کدپستیها با صفر پیشرو ذخیره شدهاند. وقتی این فایل به JSON تبدیل میشود، صفرها حفظ میشوند. اما اگر بعداً از ابزاری استفاده کند که به طور خودکار اعداد را تفسیر میکند (مثلاً JSON.parse در جاوااسکریپت)، صفرها از دست میروند. بنابراین تحلیلگر باید از این موضوع آگاه باشد و از روشهای مناسب برای حفظ دادهها استفاده کند.
۳. تیمهای همکار با تخصصهای مختلف: در بسیاری از سازمانها، افراد غیرفنی (مانند تیم بازاریابی یا فروش) دادهها را در Excel ذخیره میکنند و به صورت CSV صادر میکنند. تیم فنی برای توسعه وبسایت یا اپلیکیشن نیاز به JSON دارد. این ابزار به هر دو طرف اجازه میدهد بدون نیاز به نصب نرمافزار خاص یا آپلود اطلاعات به سرور، تبدیل را انجام دهند.
۴. محققان و دانشجویان: برای تکالیف برنامهنویسی یا تحلیل داده، گاهی نیاز به تبدیل یک فایل CSV یکبار مصرف به JSON است. این ابزار سریع و بدون نیاز به نوشتن کد، این کار را انجام میدهد.
مقایسه با تبدیل معکوس (JSON به CSV)
تبدیل CSV به JSON ذاتاً سادهتر از تبدیل معکوس (JSON به CSV) است. دلایل:
- ساختار تخت CSV: CSV همیشه یک جدول دو بعدی است (ردیفها و ستونها). بنابراین تبدیل آن به JSON یک عملیات مستقیم است: هر سطر به یک شیء و هر ستون به یک کلید تبدیل میشود.
- نیاز به تختسازی در جهت عکس: JSON میتواند ساختارهای عمیق تو در تو داشته باشد (یک شیء شامل آرایهای از اشیاء که خودشان شامل آرایههای دیگر هستند). برای تبدیل JSON به CSV، این ساختارها باید «تخت» (flatten) شوند، که نیاز به قوانین اضافی دارد. برای مثال، اگر یک شیء JSON شامل فیلدی به نام «آدرس» با زیرفیلدهای «خیابان» و «شهر» باشد، در CSV باید این زیرفیلدها به ستونهای جداگانه با نامهای ترکیبی (مانند «آدرس.خیابان» و «آدرس.شهر») تبدیل شوند.
- مدیریت نوع دادهها: در تبدیل CSV به JSON، مشکل اصلی این است که همه چیز رشته است. اما در تبدیل JSON به CSV، باید تصمیم بگیرید که مقادیر غیررشتهای (اعداد، بولیها، null) چگونه در CSV که فقط متن پشتیبانی میکند، نمایش داده شوند. معمولاً اعداد و بولیها به رشته تبدیل میشوند و null به صورت رشته خالی یا کلمه "null" ذخیره میشود.
در نتیجه، این ابزار برای CSV به JSON یک تبدیل مستقیم و کمخطا ارائه میدهد، در حالی که تبدیل معکوس معمولاً نیاز به تصمیمگیریهای بیشتری دارد و ممکن است منجر به از دست رفتن اطلاعات ساختاری شود.
سوالات متداول
۱. چرا اعداد در فایل CSV من در خروجی JSON به صورت رشته ظاهر میشوند؟ این رفتار طراحی شده است. CSV اطلاعات نوع داده را ذخیره نمیکند و همه فیلدها به صورت متن هستند. این ابزار آنها را به همان صورت به JSON منتقل میکند تا از مشکلاتی مانند حذف صفرهای پیشرو یا کاهش دقت اعداد بزرگ جلوگیری کند. اگر نیاز به عدد دارید، پس از دانلود فایل JSON، مقادیر مربوطه را به صورت دستی به عدد تبدیل کنید.
۲. آیا میتوانم فایل JSON را دوباره به CSV تبدیل کنم؟ بله، با استفاده از ابزار معکوس موجود در همین سایت میتوانید JSON را به CSV تبدیل کنید، اما توجه داشته باشید که اگر JSON اصلی شامل ساختارهای تو در تو باشد، این ساختارها در فرایند تبدیل تخت میشوند و ممکن است اطلاعات از دست برود.
۳. حداکثر اندازه فایل قابل قبول چقدر است؟ محدودیت دقیق در برگه اطلاعات ذکر نشده است، اما اگر فایل شما خیلی بزرگ باشد، پیام «این فایل بیش از حد بزرگ است. از فایلی زیر ‹max› استفاده کنید.» نمایش داده میشود. همچنین اگر فایل تعداد ردیف یا ستون زیادی داشته باشد، محدودیتهای اعمال شده اعلام میشود.
۴. آیا ابزار از فایلهای JSON یا Excel هم پشتیبانی میکند؟ بله، ابزار میتواند فایلهای JSON و XLSX را نیز به عنوان ورودی بخواند و آنها را به JSON تبدیل کند. اما سناریوی اصلی و پرکاربردترین حالت، تبدیل CSV به JSON است. اگر فایل JSON آپلود کنید، ابزار آن را به عنوان یک جدول تفسیر کرده و دوباره به JSON خروجی میدهد.
۵. چرا گاهی پیام «این CSV قابل تجزیه نیست» دریافت میکنم؟ این خطا معمولاً به دلایل زیر رخ میدهد: استفاده از جداکننده اشتباه (مثلاً فایل شما از سمیکالن استفاده میکند اما شما کاما را انتخاب کردهاید)، وجود نقلقولهای ناقص در فایل (یک نقلقول باز شده اما بسته نشده)، یا تعداد ستونهای نامتناقض در ردیفهای مختلف. فایل CSV خود را با یک ویرایشگر متن باز کنید و ساختار آن را بررسی کنید.
۶. آیا خطوط جدید داخل سلولهای CSV در خروجی JSON حفظ میشوند؟
بله. اگر یک سلول CSV حاوی خط جدید باشد و به درستی با نقلقول محصور شده باشد، این خط جدید به صورت \n در مقدار رشتهای JSON ذخیره میشود. این ویژگی برای فیلدهای متنی مانند توضیحات محصول یا یادداشتها مفید است.