تحويل XML إلى JSON

يعمل على جهازك · الملف لا يغادر جهازك.

أضف ملف .xml أو الصق XML من واجهة برمجية أو خلاصة أو ملف إعدادات واحصل على JSON. يقرأ المستندَ محللُ XML في متصفحك نفسه، بالترميز الذي يعلنه سطره الأول، فكل ملف سليم البنية يُحوَّل، والملف المعطوب يُبلَّغ عنه برقم السطر والعمود وبما الخطأ هناك.

التحويل ثابت وقابل للعكس: كل عنصر مفتاح؛ والعناصر المتجاورة بالاسم نفسه مصفوفة؛ والسمات مفاتيح تبدأ بـ @ (id="A3" تصبح "@id": "A3")؛ وحين يجمع العنصر نصًا وعناصر أو سمات يوضع النص تحت "#text". ومع تفعيل التعرّف على الأنواع يصبح النص 12 رقمًا وtrue قيمة منطقية والعنصر الفارغ null.

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

  1. أضف ملف XML أو الصق النص.
  2. قرر إن كانت الأرقام والقيم المنطقية تُكتب بنوعها.
  3. اضغط «حوّل إلى JSON» وراجع المعاينة.
  4. نزّل ملف .json.

الصيغ المدعومة والحدود

المدخل
XML — ملف أو نص ملصوق، بالترميز الذي يعلنه
المخرج
JSON منسّق، UTF-8
السمات
تُحفظ بمفاتيح "@name"
مكان المعالجة
داخل متصفحك — الملف لا يغادر جهازك

ليست مناسبة لِـ: المستندات غير سليمة البنية (وسوم غير مغلقة، صفحات HTML) — يُبلَّغ عن أول خطأ ولا يُخمَّن.

أي القيم يتغير نوعها

يشمل التعرّف على الأنواع السماتِ كما يشمل النص، ولا يغيّر القيمة إلا حيث لا يضيع شيء. مع تفعيله يصبح id="3" هو "@id": 3، بينما يبقى id="007" النص "007". ويبقى 1.50 نصًا أيضًا، لأنه لو صار رقمًا لكُتب من جديد 1.5. وتصبح TRUE هي true. والعنصر الفارغ مثل <note/>، والعنصر الذي لا يحوي إلا مسافات، يصبحان null؛ أما كلمة NULL فتبقى نصًا. والتواريخ مثل 2024-01-05 لا تُحوَّل أبدًا.

ومع تعطيل التعرّف تصبح العناصر الفارغة "" وتبقى كل قيمة نصًا كما كُتبت تمامًا.

ما لا يستطيع JSON حفظه

بعض أجزاء مستند XML لا مكان لها في JSON فتُحذف: التعليقات وتعليمات المعالجة وDOCTYPE. وأقسام CDATA تصبح نصًا عاديًا، فيعطي <a><![CDATA[<b>x</b>]]></a> القيمة "a": "<b>x</b>".

ويضيع الترتيب بين العناصر المختلفة الأسماء، لأن كل اسم يصبح مفتاحًا واحدًا. ففي <step>1</step><note/><step>2</step> تُجمع الخطوتان في "step": [1, 2]، ولا شيء يسجّل أن note كان بينهما. والنص المختلط بالوسوم يفقد موضعه بالطريقة نفسها: <p>Hello <b>world</b> and <i>you</i>!</p> يصبح "b": "world" و"i": "you" و"#text": "Hello and !". أما المستندات التي يكون هذا الترتيب فيها هو المحتوى نفسه، كالنصوص المنسّقة، فلا يناسبها هذا التحويل.

مساحات الأسماء والكيانات والأخطاء والترميز

تبقى الأسماء ذات البادئة كما كُتبت، وتظهر تعريفات مساحات الأسماء سماتٍ: <soap:Envelope xmlns:soap="…"> يعطي مفتاحًا "soap:Envelope" فيه "@xmlns:soap"، وتعيد /json-to-xml الاثنين إلى XML نفسه.

وعدا الكيانات التي يعرّفها DOCTYPE المستند نفسه، لا يُفهم إلا الخمسة المدمجة في XML (&amp; &lt; &gt; &quot; &apos;) والكيانات الرقمية مثل &#160;. وحين يتوقف المحلل تذكر الرسالة السطر والعمود وتقول بكلام واضح ما الخطأ: عنصر أُغلق باسم آخر، أو اسم مجهول مثل &nbsp; (اكتب &#160; بدلًا منه)، أو علامة & أو < وحدها، أو عنصر ثانٍ في أعلى المستند، أو ملف ينتهي قبل أوانه.

ويُقرأ الملف بالترميز الذي يعلنه سطره الأول، مثل ISO-8859-1 أو windows-1256. ومن دون إعلان يُقرأ UTF-8 أو UTF-16، وتُعرف صفحات الترميز القديمة كما هو مشروح في /csv-to-json.

الأسئلة الشائعة

هل يغادر ملفي جهازي؟
لا. تجري المعالجة بالكامل داخل متصفحك وبقدرة جهازك نفسه. الملف لا يغادر حاسوبك أو هاتفك، وبعد أن تستخدم الأداة مرة واحدة، تواصل العمل حتى إن انقطع الإنترنت.
أين تذهب السمات؟
إلى مفاتيح تبدأ بـ @، فالعنصر <item id="A3"> يعطي "@id": "A3". وإن كان للعنصر نص مع سمات أو عناصر فرعية يوضع النص تحت "#text".
لماذا عنصر واحد كائن والمكرر مصفوفة؟
العنصر الذي يظهر مرة واحدة تحت أبيه يصبح كائنًا أو قيمة؛ والعناصر المتجاورة بالاسم نفسه تصبح مصفوفة. هذا يعكس المستند بدقة.

أدوات ذات صلة

المزيد في الجداول والبيانات

هذه الصفحة بلغات أخرى: English · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা