كيفية تحويل XML إلى JSON
- الصق XML، أو اسحب ملف
.xmlوأفلته في المحرر، أو حمّله من رابط URL. يظهر JSON أثناء الكتابة. - اضبط بادئة السمات ومفتاح النص، وقرّر ما إذا كنت تريد استخدام المصفوفات دائمًا، أو تحويل الأرقام والقيم المنطقية، أو تجاهل بادئات مساحات الأسماء.
- انسخ JSON أو نزّله كملف
.json.
كيف يتحول XML إلى JSON؟
| XML | JSON |
|---|---|
<name>Ada</name> | "name": "Ada" |
<price>9.90</price> | "price": 9.90 – تُحفظ الخانات الرقمية كما هي تمامًا |
<item id="7">Pen</item> | "item": {"@id": 7, "#text": "Pen"} |
<tag>a</tag><tag>b</tag> | "tag": ["a", "b"] |
<note/> | "note": null |
<![CDATA[a < b]]> | النص "a < b" |
<soap:Body> مع خيار تجاهل بادئات مساحات الأسماء | "Body" |
لماذا يهم خيار «استخدام المصفوفات دائمًا»؟
العنصر الذي يظهر مرة واحدة يصبح قيمة مفردة، لكنه عندما يظهر مرتين يصبح مصفوفة. وعندها يتعين على الكود الذي يقرأ JSON التعامل مع الشكلين معًا – وهو خطأ برمجي شائع عندما تحتوي قائمة أحيانًا على عنصر واحد فقط. فعّل خيار استخدام المصفوفات دائمًا للعناصر الفرعية لتحصل على مصفوفات في كل مكان: تصبح البنية متوقعة مقابل بضعة أقواس إضافية.
تحويل XML إلى JSON برمجيًا
- Python:
xmltodict.parse(text)(حزمة xmltodict) - JavaScript:
new XMLParser({ ignoreAttributes: false }).parse(text)(حزمة fast-xml-parser) - C#:
JsonConvert.SerializeXmlNode(doc)(Newtonsoft.Json) - سطر الأوامر:
yq -p xml -o json file.xml
الأسئلة الشائعة
هل التحويل دون فقدان للبيانات؟
تُحفظ أسماء العناصر والسمات والنصوص، وتحتفظ الأرقام بخاناتها كما هي تمامًا. أما التعليقات وتعليمات المعالجة وموضع النص بين العناصر الفرعية (المحتوى المختلط) فلا يمكن تمثيلها في JSON.
هل يمكنني تحويل JSON إلى XML مرة أخرى؟
نعم، باستخدام أداة تحويل JSON إلى XML في موقعنا الشقيق JSON Formatter، التي تتبع اصطلاحات @ و#text نفسها.
ماذا يحدث لمساحات الأسماء؟
تُحفظ الأسماء ذات البادئات مثل soap:Body كمفاتيح افتراضيًا، وتظهر تصريحات xmlns كسمات. فعّل خيار تجاهل بادئات مساحات الأسماء لتحصل على أسماء بسيطة مثل Body دون التصريحات.
لماذا تظهر قيمة كسلسلة نصية بدلًا من رقم؟
القيم مثل 007 أو 1,000 ليست أرقامًا عشرية عادية، لذا تبقى سلاسل نصية لتجنب فقدان البيانات. ألغِ تحديد خيار تحويل الأرقام وقيم true/false للإبقاء على كل القيم كسلاسل نصية.