esc
JSON → XML

تحويل ⁦JSON⁩ إلى ⁦XML⁩:
المحوّل

تحويل ⁦JSON⁩ إلى ⁦XML⁩ مجانًا وبخصوصية وفي لحظات.

⁦JSON⁩ إلى CSVYAMLTOON عكس الترتيب XML → JSON

كيفية تحويل تحويل ⁦⁦JSON⁩⁩ إلى ⁦⁦XML⁩⁩

  1. 01أضف ملفات ⁦JSON⁩اختر الملفات أو أفلتها على الصفحة.
  2. 02التحويل على جهازكلا يُرفع أي شيء. عدّل الإعدادات إن أردت.
  3. 03تنزيلاحفظ كل ملف على حدة، أو كلها في ملف ⁦ZIP⁩ واحد.
شخصية ملف ترتّب أقواسًا متداخلة في صفوف

ما هو ⁦JSON⁩؟

صيغة البيانات في واجهات ⁦API⁩ والتطبيقات. كائنات وقوائم، متداخلة في الغالب.

JSONبيانات متداخلة
XMLبيانات بالوسوم

حوّل ⁦JSON⁩ إلى ⁦XML⁩ عندما يظل نظام ما يتوقع بيانات موسومة: واجهة ⁦API⁩ قديمة، أو خدمة ⁦SOAP⁩، أو موجز منتجات، أو ملف إعدادات ⁦XML.⁩ تصبح الكائنات عناصر متداخلة، وتصبح القوائم عناصر متكررة، وتبدأ النتيجة بتصريح ⁦XML⁩ قياسي بترميز ⁦UTF-8.⁩ يُحوَّل الملف في متصفحك ولا يُرفع أبدًا.

كيف يصبح ⁦JSON⁩ ملف ⁦XML:⁩ مثال عملي

خذ هذا المُدخل: {"⁦order⁩": {"@_⁦id⁩": ⁦7,⁩ "⁦customer⁩": {"⁦name⁩": "⁦Ana⁩", "⁦city⁩": "⁦Lyon⁩"}, "⁦items⁩": [{"⁦sku⁩": "⁦A1⁩"}, {"⁦sku⁩": "⁦B2⁩"}]}}. يحتوي الملف على مفتاح واحد في المستوى الأعلى يحمل كائنًا، لذا يصبح ⁦order⁩ هو العنصر الجذر. الناتج هو <⁦order id⁩="⁦7⁩"> ويضم عنصر <⁦customer⁩> بداخله <⁦name⁩>⁦Ana⁩</⁦name⁩> و<⁦city⁩>⁦Lyon⁩</⁦city⁩>، يليه عنصران <⁦items⁩>، واحد لكل إدخال في القائمة.

تكرّر القائمة مفتاحها مرة لكل إدخال بدلًا من إضافة غلاف يضم عناصر <⁦item⁩> فرعية، وهذه هي الطريقة التي تكتب بها معظم صيغ ⁦XML⁩ القوائم. يأتي الناتج بمسافة بادئة من مسافتين.

العنصر الجذر والسمات والنص

  • الجذر. عندما يكون ⁦JSON⁩ مفتاحًا واحدًا يحمل كائنًا، يصبح هذا المفتاح هو الجذر. وأي شيء آخر يُغلَّف داخل <⁦root⁩>: كائن له عدة مفاتيح في المستوى الأعلى، أو قيمة مفردة، أو مصفوفة يصبح كل إدخال فيها عنصر <⁦item⁩>.
  • السمات. المفاتيح التي تبدأ بـ @_ تصبح سمات، فيتحول "@_⁦currency⁩": "⁦EUR⁩" إلى ⁦currency⁩="⁦EUR⁩". ويُتجاهَل مفتاح @_ الذي يحمل كائنًا أو قائمة، لأن السمة لا تحمل إلا قيمة بسيطة.
  • نص العنصر. المفتاح المسمّى #⁦text⁩ يصبح النص الخاص بالعنصر، فينتج {"⁦price⁩": {"@_⁦currency⁩": "⁦EUR⁩", "#⁦text⁩": ⁦9.5⁩}} العنصر <⁦price currency⁩="⁦EUR⁩">⁦9.5⁩</⁦price⁩>.
  • تستخدم أداة ⁦XML⁩ إلى ⁦JSON⁩ الأعراف نفسها، لذا يمكن تحويل ناتجها هنا مرة أخرى إلى ⁦XML⁩ مشابه.

حالات خاصة يتعامل معها المحوّل

  • مفاتيح ليست أسماء ⁦XML⁩ صالحة. لا يجوز أن تحتوي أسماء العناصر على مسافات أو معظم علامات الترقيم، ولا أن تبدأ برقم. تتحول تلك المحارف إلى شرطات سفلية وتُضاف شرطة سفلية في البداية عند الحاجة، فيصبح "⁦first name⁩" هو ⁦first⁩_⁦name⁩، ويصبح "⁦2nd⁩" هو _⁦2nd.⁩
  • النقطتان الرأسيتان. تتحول النقطتان أيضًا إلى شرطة سفلية، فيخرج ⁦dc:title⁩ بالشكل ⁦dc⁩_⁦title.⁩ أما مفاتيح السمات فتبقى كما هي، لذا يظل "@_⁦xmlns:dc⁩" يعمل تصريحًا لنطاق أسماء.
  • المحارف الخاصة. تُهرَّب &، و< و> داخل القيم إلى &⁦amp⁩; و&⁦lt⁩; و&⁦gt⁩;، فيبقى المستند صالحًا.
  • القيم ⁦null⁩ والفارغة. تصبح ⁦null⁩ والكائنات الفارغة عناصر ذاتية الإغلاق مثل <⁦note/⁩>. أما القائمة الفارغة فلا تُنتج أي عنصر.
  • قوائم داخل قوائم. لا يمكن كتابة قيمة مثل [[⁦1, 2⁩], [⁦3, 4⁩]] عناصرَ متكررة عادية، لذا تحصل كل قائمة داخلية على عناصر <⁦item⁩> فرعية خاصة بها.

مطابقة صيغة حدّدها غيرك

لا يوجد مخطط (⁦schema)⁩، لذا لا يستطيع المحوّل أن يعرف هل يريد النظام قيمة ما سمةً أم عنصرًا فرعيًا. لمطابقة صيغة موجودة، عدّل ⁦JSON⁩ أولًا: أضف @_ إلى المفاتيح التي يجب أن تكون سمات، وغلّف كل شيء في مفتاح واحد يحمل اسم العنصر الجذر المتوقع.

يُرفض ⁦JSON⁩ غير الصالح مع ذكر السطر والعمود اللذين فيهما المشكلة، وغالبًا ما تكون فاصلة ناقصة أو زائدة في النهاية أو علامة تنصيص ناقصة. كما أن ⁦JSON⁩ الذي يحتوي على تعليقات // ليس ⁦JSON⁩ صالحًا.

تحتاج إلى جدول بيانات بدلًا من ذلك؟ أداة ⁦JSON⁩ إلى ⁦CSV⁩ تحوّل السجلات إلى صفوف. ولملفات الإعدادات التي يعدّلها الناس يدويًا، تكون أداة ⁦JSON⁩ إلى ⁦YAML⁩ أسهل قراءةً من ⁦XML.⁩

نظرة سريعة

السعر
مجاني. بلا تسجيل وبلا علامة مائية.
الخصوصية
تُعالَج الملفات في متصفحك ولا تُرفع أبدًا.
يقبل
JSON
ستحصل على
XML
دفعة
حوّل ملفات كثيرة دفعة واحدة ونزّلها في ملف ⁦ZIP⁩
يعمل على
⁦Chrome⁩ و⁦Edge⁩ و⁦Firefox⁩ و⁦Safari⁩، على الهواتف والحواسيب
دون اتصال
بعد أول تحويل، يواصل العمل دون إنترنت

الأسئلة

هل تُرفع ملفاتي؟

أبدًا. يجري تحويل ⁦JSON⁩ إلى ⁦XML⁩ داخل متصفحك، فتبقى ملفاتك على جهازك.

هل يمكنني تحويل عدة ملفات دفعة واحدة؟

نعم. أضف ما تشاء من الملفات ونزّلها كلها في ملف ⁦ZIP⁩ واحد.

هل يوجد حد لحجم الملف؟

الملفات التي تبلغ عشرات الميغابايت لا مشكلة فيها على معظم أجهزة الكمبيوتر.

لماذا غُلّفت بياناتي داخل عنصر <⁦root⁩>؟

لأن ⁦JSON⁩ لا يحتوي على مفتاح واحد بالضبط في المستوى الأعلى يحمل كائنًا. غلّف بياناتك في مفتاح كهذا، مثل {"⁦catalog⁩": {...}}، فيصبح ⁦catalog⁩ هو الجذر.

كيف أحصل على سمة بدلًا من عنصر فرعي؟

ابدأ المفتاح بـ @_. مثلًا، يصبح "@_⁦id⁩": ⁦7⁩ السمة ⁦id⁩="⁦7⁩" على العنصر الأب.

هل يضيف مخططًا أو نطاقات أسماء؟

لا، يضيف فقط تصريح ⁦XML⁩ والعناصر. أضف نطاقات الأسماء بنفسك على شكل مفاتيح @_⁦xmlns.⁩