مبدل JSON
تبدیل JSON، YAML، CSV و XML به یکدیگر در هر جهت، با پیامهای خطای روشن؛ همه در مرورگر شما.
مبدل JSON — تبدیل JSON به YAML، CSV و XML و برعکس
JSON، YAML، CSV یا XML را بچسبانید، قالبی را که لازم دارید انتخاب کنید و نسخهٔ تبدیلشده همزمان با تایپ ظاهر میشود. همهٔ جهتها کار میکنند: JSON به YAML برای یک مانیفست Kubernetes، YAML به JSON برای یک فراخوانی API، JSON به CSV برای صفحهگسترده، CSV به JSON برای یک اسکریپت ورود داده، و XML به JSON وقتی یک سرویس قدیمی هنوز XML حرف میزند. تجزیه و تبدیل در مرورگر شما انجام میشود، پس فایلهای پیکربندی و خروجیهای حاوی اطلاعات مشتری هرگز از دستگاه شما خارج نمیشوند.
این ابزار برای فایلهای واقعیای ساخته شده که آدمها میچسبانند: CSV خروجی گرفتهشده از Excel با نقطهویرگول و نشانهٔ ترتیب بایت (BOM)، JSON با شیءهای تودرتو که باید در ستونها جا شوند، و XML پر از ویژگی (attribute). وقتی ورودی خراب باشد، بهجای اینکه بیصدا شکست بخورد، با شمارهٔ خط و ستون میگوید مشکل کجاست.
روش تبدیل
- قالب ورودی را از از و قالب خروجی را از به انتخاب کنید.
- داده را بچسبانید، برای بارگذاری فایل روی باز کردن فایل بزنید، یا برای دیدن یک مثال نمونه را بزنید.
- نتیجه همزمان با تایپ ظاهر میشود. در صورت نیاز تورفتگی، جداکنندهی CSV یا عنصر ریشهی XML را تنظیم کنید.
- روی کپی یا دانلود بزنید و با دکمهٔ ⇄ نتیجه را در جهت عکس برگردانید.
هر قالب به چه کاری میآید
| قالب | نقطهٔ قوت | کاربرد رایج |
|---|---|---|
| JSON | نوعهای دادهٔ دقیق، تودرتویی، پشتیبانی همهجایی تجزیهگرها | APIها، JavaScript، سندهای NoSQL، پیکربندی |
| YAML | خوانا برای انسان، توضیح (comment)، علامتگذاری کمتر | Kubernetes، Docker Compose، پایپلاینهای CI، Ansible |
| CSV | جدولهای تخت، در هر صفحهگستردهای باز میشود | خروجی و ورود داده، گزارشها، دادهای که به افراد غیربرنامهنویس داده میشود |
| XML | ویژگیها، محتوای مختلط، اسکیما | سرویسهای SOAP، خوراکهای RSS، اسناد اداری، سامانههای سازمانی قدیمیتر |
JSON به CSV: تخت کردن دادهٔ تودرتو
فایل CSV یک جدول تخت است، اما JSON میتواند شیء را درون شیء قرار دهد. مبدل هر رکورد را تخت میکند: شیء تودرتو به نام ستونهای نقطهدار مثل address.city تبدیل میشود و آرایه شماره میگیرد، مثل tags.0 و tags.1. ستونها اجتماع همهٔ کلیدهای پیداشدهاند، به همان ترتیبی که اولین بار ظاهر شدهاند؛ پس اگر رکوردی فیلدی را نداشته باشد، آن خانه فقط خالی میماند. مقدارهایی که جداکننده، گیومه یا شکست خط دارند، همانطور که RFC 4180 توصیف میکند داخل گیومه و Escape میشوند؛ همان چیزی که Excel، Google Sheets و ابزارهای ورود دادهٔ پایگاه داده انتظار دارند.
در جهت برگشت، CSV به JSON ردیف اول را نام ستونها میخواند و هر ردیف دیگر را به یک شیء تبدیل میکند. اگر تودرتو کردن ستونهای نقطهدار را تیک بزنید، address.city دوباره به یک شیء تودرتو تبدیل میشود؛ به این ترتیب یک فایل JSON میتواند از صفحهگسترده رد شود و سالم برگردد.
جزئیات CSV که معمولاً خراب میشوند
- جداکننده: اگر روی خودکار بماند، مبدل خط اول را نگاه میکند و ویرگول، نقطهویرگول، تب یا خط عمودی را انتخاب میکند. خروجیهای Excel در تنظیمات اروپایی از نقطهویرگول استفاده میکنند و تشخیص خودکار از پس آنها برمیآید.
- فیلدهای داخل گیومه: ویرگول و شکست خط داخل گیومه جزو مقدار باقی میمانند و گیومهٔ دوتایی
""به یک گیومه تبدیل میشود. - نشانهٔ ترتیب بایت: نویسهٔ نامرئیای که Excel ابتدای CSV با کدگذاری UTF-8 میگذارد حذف میشود تا نام ستون اول تمیز دربیاید.
- عدد و مقدار بولی: وقتی تشخیص عددها و true/false تیک خورده باشد،
42عدد وtrueمقدار بولی میشود. مقدارهایی مثل007یا1.50متن میمانند، چون تبدیلشان به عدد صفر ابتدایی یا رقم آخر را از بین میبرد.
JSON و YAML
YAML ابرمجموعهٔ JSON است، پس هر سند JSON بدون هیچ اتلافی به YAML تبدیل میشود. غافلگیریها در جهت عکس است: برخی تجزیهگرها yes و no بدون گیومه، تاریخها و شمارهٔ نسخهها را به نوعهای دیگری تبدیل میکنند. این مبدل YAML را با اسکیمای هستهٔ YAML 1.2 میخواند که در آن فقط true، false، عددها و null معنای ویژه دارند؛ بنابراین تاریخی مثل 2024-01-01 متن میماند. هنگام نوشتن YAML هم هر رشتهای را که تجزیهگر دیگری ممکن است اشتباه بخواند داخل گیومه میگذارد، مثل 'yes'، 'on' یا '1.10'. توضیحها (comment) و لنگرها (anchor) معادلی در JSON ندارند: لنگرها و کلیدهای ادغام << به نسخههای کامل باز میشوند و توضیحها حذف میشوند.
JSON و XML
XML چیزهایی دارد که JSON ندارد، برای همین مبدل از یک قرارداد رایج پیروی میکند. هر ویژگی به کلیدی تبدیل میشود که با @ شروع میشود، متنی که کنار عنصرهای فرزند قرار گرفته #text میشود و عنصری که تکرار شده به آرایه تبدیل میشود. بنابراین <book id="b1"><title>Clean Code</title></book> به {"book": {"@id": "b1", "title": "Clean Code"}} تبدیل میشود. هنگام تبدیل JSON به XML همین قاعدهها برعکس اعمال میشوند و در کلیدهایی که نام معتبر XML نیستند، نویسههای نامعتبر با زیرخط جایگزین میشوند. اگر JSON بیش از یک کلید در سطح بالا دارد، با عنصر ریشه نام عنصر دربرگیرنده را تعیین کنید.
پیامهای خطایی که میشود با آنها کاری کرد
مبدلی که وقتی ورودی خراب است فقط یک کادر خالی نشان میدهد، وقتتان را هدر میدهد. این ابزار میگوید چه چیزی و کجا اشتباه است: JSON نامعتبر با شمارهٔ خط و ستون اولین نویسهای که نباید آنجا باشد گزارش میشود، خطاهای YAML همراه با دلیلی که تجزیهگر اعلام کرده میآیند و XML ناخوشساخت با موقعیتش گزارش میشود. فیلد CSVای که گیومهٔ بازش هرگز بسته نشده هم علامت میخورد، چون در غیر این صورت بقیهٔ فایل را میبلعد.
حریم خصوصی
هیچ چیز به هیچ جا فرستاده نمیشود. تجزیهگر YAML فقط یک بار، وقتی برای اولین بار YAML را انتخاب میکنید، بارگذاری میشود و بقیهٔ کار JavaScript ساده در خود صفحه است. همین باعث میشود ابزار برای فایلهای متغیرهای محیطی، پاسخهای API حاوی توکن و خروجیهایی که اطلاعات شخصی دارند امن باشد.
ابزارهای مرتبط
برای بررسی یا زیباسازی JSON پیش از تبدیل، از فرمتکنندهٔ JSON استفاده کنید. برای مقایسهٔ دو نسخه از یک فایل پیکربندی، مقایسهٔ متن را به کار ببرید. برای یک جهت مشخص، صفحههای کاربردی مبدل را آماده باز میکنند: تبدیل JSON به YAML، تبدیل JSON به CSV و تبدیل XML به JSON. برای تبدیل JSON به interfaceهای TypeScript، structهای Go یا مدلهای Python، از تبدیل JSON به تایپ استفاده کنید.