تبدیل JSON به XML
دادههای JSON را به نرمافزاری بدهید که فقط XML میفهمد. هر رکورد به یک عنصر تبدیل میشود، هر کلید به یک تگ فرزند، و کل سند زیر یک عنصر ریشه قرار میگیرد که نامش را خودتان انتخاب میکنید.
مبدل داده
یا فایلهای CSV, TSV, TXT … را اینجا رها کنید ·
حداکثر 95 MB برای هر فایل· تا 20 فایل· حذف پس از 30 دقیقه
فایلها روی سرورهای ما پردازش میشوند و پس از 30 دقیقه حذف میشوند.
نویسهای که ستونها را در فایلهای CSV و متنی جدا میکند، هم برای خواندن و هم برای نوشتن. حالت خودکار آن را از ورودی تشخیص میدهد و با ویرگول مینویسد.
UTF-8 برای همه زبانها کار میکند. اگر Excel در ویندوز هنگام باز کردن CSV نویسههای اروپایی یا آسیایی را خراب نشان میدهد، UTF-8 با BOM را انتخاب کنید.
ورودی Excel، ODS و Numbers: فقط برگه اول تبدیل شود یا همه برگهها (برای هر برگه یک CSV داخل ZIP، یا برای هر برگه یک کلید JSON).
نام زبانه برگه در صفحهگسترده جدید، حداکثر 31 نویسه.
آرایهای از شیءها برای هر ردیف از نام ستونها بهعنوان کلید استفاده میکند؛ آرایهای از آرایهها فشردهتر است و سرستون را بهعنوان آرایه اول نگه میدارد.
نام عنصر بیرونی که همه ردیفها را در بر میگیرد؛ هر ردیف داخل آن به یک <row> تبدیل میشود.
در دستورهای CREATE TABLE و INSERT استفاده میشود. فقط حروف انگلیسی، ارقام و زیرخط.
نقلقولگذاری و نوع ستونها بین پایگاههای داده کمی فرق دارد؛ همان را که میخواهید در آن وارد کنید انتخاب کنید.
سلولهای تاریخ را در یک قالب بازنویسی میکند. ISO (2026-10-18) برای پایگاه داده و کد امنترین است؛ «بدون تغییر» آنها را همانطور که در منبع هستند نگه میدارد.
نحوه استفاده از این ابزار
- 1
فایل JSON را بارگذاری کنید
یک فایل .json، مثلاً پاسخ یک API، یا یک فایل JSON Lines اضافه کنید. حداکثر 20 فایل، هر کدام تا 95 MB.
- 2
عنصر ریشه را نامگذاری کنید
در بخش تنظیمات پیشرفته، تگ بیرونی را در تگ ریشهٔ XML بنویسید (مقدار پیشفرض rows است) و برای خروجی با تورفتگی، قالببندی خوانا را روشن بگذارید.
- 3
تبدیل و نگاشت کنید
روی تبدیل به XML بزنید و فایل را دانلود کنید. اگر طرح (schema) سیستم گیرنده نامهای دیگری میخواهد، تگها را تغییر نام دهید.
چرا JSON را به XML تبدیل کنیم، وقتی بیشتر APIها به JSON رفتهاند؟
JSON در API های وب پیروز شد؛ مشخصات فعلی آن، RFC 8259 مصوب 2017، در چند صفحه جا میشود. XML قدیمیتر است، از فوریهٔ 1998 توصیهنامهٔ W3C بوده و هرگز جاهایی را که قراردادها سختگیرند ترک نکرده است: بانکداری، صورتحساب الکترونیکی، نشر و گزارشدهی دولتی.
بنابراین جهت این تبدیل معمولاً از پول یا مقررات تبعیت میکند. برنامهنویسی سفارشها را از یک API با JSON میگیرد و باید آنها را به سرویس SOAP یک شریک بفرستد. فروشگاهی محصولاتش را در JSON نگه میدارد اما سایت مقایسهٔ قیمت فید XML میخواهد. تیمی ترجمهها را در JSON ذخیره میکند و ساخت اندروید strings.xml انتظار دارد. اگر مقصد صفحهگسترده باشد، تبدیل JSON به CSV بهجای عنصر، سطر میدهد.
سیستمهایی که هنوز ورودی XML میخواهند
| سازمان | الزام | منبع |
|---|---|---|
| سرویسهای وب SOAP | هر درخواست در یک پاکت XML ارسال میشود؛ SOAP 1.2 در سال 2003 توصیهنامهٔ W3C شد | — |
| Google Merchant Center | فید محصول به صورت XML در قالب RSS 2.0 یا Atom 1.0 و همچنین متن جداشده با جداکننده پذیرفته میشود | — |
| صورتحساب الکترونیکی Peppol | صورتحسابها به صورت اسناد UBL 2.1 XML طبق قواعد Peppol BIS Billing 3.0 مبادله میشوند | — |
| برنامههای اندروید | منابع متنی و ترجمهها در res/values/strings.xml قرار دارند | — |
نمونهٔ تبدیل JSON به XML: دو محصول
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<sku>A-17</sku>
<price>12.5</price>
<tags>جدید</tags>
<tags>حراج</tags>
</row>
<row>
<sku>B-02</sku>
<price>8</price>
</row>
</rows>باور نادرستJSON و XML یکبهیک به هم نگاشت میشوند، پس تبدیل دقیق است.
واقعیتXML ویژگی (attribute)، محتوای ترکیبی و فضای نام دارد که JSON ندارد، و JSON نوعهایی دارد که XML ندارد. مبدل باید یک نگاشت را انتخاب کند؛ این مبدل همهجا از عنصرهای فرزند استفاده میکند.
باور نادرستعدد 12.5 در XML هم عدد میماند.
واقعیتXML کاراکتر ذخیره میکند. 12.5 تا وقتی طرح یا برنامهٔ خواننده آن را عدد اعشاری نداند، فقط متن است.
وقتی JSON به XML تبدیل میشود چه چیزی تغییر میکند
سه چیز را باید بررسی کرد. نوعها به متن تبدیل میشوند، پس true، null و 0 همه به صورت کاراکتر میرسند؛ null معمولاً به عنصر خالی تبدیل میشود. کلیدهایی که نام معتبر XML نیستند باید تغییر نام یابند، چون تگ نمیتواند با رقم شروع شود یا فاصله داشته باشد. و خروجی بزرگتر است، چون هر مقدار در یک تگ باز و بستهٔ تکرارکنندهٔ کلید قرار میگیرد.
چیز دیگری از دست نمیرود. تودرتویی به صورت عناصر تودرتو حفظ میشود، ترتیب رکوردها نگه داشته میشود و متن یونیکد سالم میماند، چون فایل با UTF-8 نوشته میشود. گزینههای بیشتر برای دادههای ساختیافته، از YAML تا SQL، در صفحهٔ مبدل داده آمده است.
مشخصات فرمتهای JSON و XML
JSON
نشانهگذاری شیء جاوااسکریپت (JSON)
JSON یک فرمت متنی سبک برای دادههای ساختاریافته است که Douglas Crockford در اوایل دهه 2000 آن را رایج کرد و با عنوان RFC 8259 و ECMA-404 استاندارد شد. اشیا، آرایهها، رشتهها، اعداد، مقادیر بولی و null را با نحوی ساده و خوانا نمایش میدهد. این فرمت پیشفرض APIهای وب، فایلهای پیکربندی و تبادل داده بین برنامهها در تقریباً همه زبانهای برنامهنویسی است. توضیحات، تاریخ یا طرحواره ندارد و فایلهای بزرگ تودرتو بدون نمایشگر سخت خوانده میشوند.
- فشردهسازی
- –
- شفافیت
- –
- انیمیشن
- –
- سال معرفی
- 2001 · Douglas Crockford
XML
Extensible Markup Language
XML زبان نشانهگذاری برای دادههای ساختاریافته است که W3C در سال 1998 منتشر کرد. از برچسبهای تودرتو با ویژگیها استفاده میکند و از طرحواره، فضای نام و اعتبارسنجی پشتیبانی میکند، به همین دلیل برای اسناد پیچیده مطمئن است. زیربنای فیدهای RSS، SVG، اسناد Office، نقشههای سایت و بسیاری از تبادلهای داده سازمانی و دولتی است. XML در مقایسه با JSON پرحجمتر است، اما همه زبانهای برنامهنویسی و بسیاری از ابزارهای صفحهگسترده میتوانند آن را بخوانند.
- فشردهسازی
- –
- شفافیت
- –
- انیمیشن
- –
- سال معرفی
- 1998 · W3C
JSON وقتی به XML تبدیل میشود که دادههای امروزی باید وارد یک قرارداد قدیمیتر شوند: سرویس SOAP، فید محصول، شبکهٔ صورتحساب الکترونیکی یا فایل پیکربندی که مصرفکنندهاش برای خواندن عناصر نوشته شده، نه آکولادها.
پرسشهای متداول تبدیل JSON به XML
وقتی JSON من با یک آرایه شروع میشود، چرا XML به یک عنصر ریشه نیاز دارد؟
مشخصات XML 1.0 میگوید هر سند معتبر باید دقیقاً یک عنصر داشته باشد که همهٔ عناصر دیگر را در بر بگیرد. آرایهٔ JSON چنین پوششی ندارد؛ بنابراین مبدل یکی اضافه میکند که نامش را تگ ریشهٔ XML تعیین میکند و هر عضو آرایه را درون آن به شکل یک <row> قرار میدهد.
با کلیدهای JSON مانند «2024 total» یا «unit price» چه میشود؟
هیچکدام نام معتبر عنصر XML نیستند: نام نمیتواند با رقم شروع شود یا فاصله داشته باشد. پیش از تبدیل، چنین کلیدهایی را در JSON تغییر نام دهید، بهتر است به همان نام تگهایی که طرح گیرنده استفاده میکند، تا خروجی بعداً نیازی به اصلاح نداشته باشد.
آرایهٔ JSON درون یک رکورد در XML چگونه نوشته میشود؟
به صورت همان عنصر که برای هر عضو یک بار تکرار میشود. آرایهٔ tags با سه رشته به سه عنصر <tags> پشت سر هم تبدیل میشود. آرایهٔ خالی هیچ اثری باقی نمیگذارد و این یکی از معدود جاهایی است که تبدیل JSON به XML اطلاعات را از دست میدهد.
آیا XML خروجی از اعتبارسنجی XSD طرف همکار من عبور میکند؟
فقط اگر ساختار از قبل با آن بخواند. مبدل یک نسخهٔ وفادار و معتبر از JSON شما مینویسد؛ ترتیب عناصر، فضای نام یا ویژگیهای موردنیاز طرف مقابل را نمیداند. خروجی را نقطهٔ شروع بدانید و با طرح موردنظر تطبیق دهید.
آیا میتوانم XML را دوباره به JSON تبدیل کنم؟
از تبدیل XML به JSON استفاده کنید. در رفتوبرگشت انتظار تفاوتهای کوچک را داشته باشید: XML هر مقدار را به صورت متن ذخیره میکند، پس عدد یا true که در JSON بوده ممکن است به صورت رشته برگردد.