Command Palette

Search for a command to run...

محول XML إلى JSON: قم بتحويل SOAP وRSS وتكوين XML إلى Clean JSON

محول XML إلى JSON: قم بتحويل SOAP وRSS وتكوين XML إلى Clean JSON

T
Toolz Team
|Jul 14, 2026|16 دقيقة قراءة

جزء من مجموعة أدوات البيانات

لا يوجد رسم خرائط قياسي بين الاثنين. XML 1.0 يحتوي على سمات ومساحات أسماء ومحتوى مختلط مرتب وتعليقات؛ RFC 8259 له ستة أنواع ولا توجد سمات. يخترع كل محول جسرًا خاصًا به، ولهذا يختلف اثنان منهم.

التكامل الذي علمني احترام تحويل XML إلى JSON كان عبارة عن شركة شحن و#39؛s API. Modern REST في كل مكان آخر في المكدس، ثم نقطة النهاية القديمة هذه التي تتحدث عن SOAP وتعيد مظاريف XML التي كنت بحاجة إلى طيها في خط أنابيب JSON. &quot؛It&#39؛s فقط XML إلى JSON،&quot؛ فكرت، ووصلت إلى محول من سطر واحد. ثم وصلت حالات الحافة: أ <Package> العنصر الذي كان في بعض الأحيان كائنًا واحدًا وأحيانًا قائمة، اعتمادًا على عدد الحزم الموجودة بالترتيب. آن id السمة التي أسقطها المحول الساذج بالكامل لأنه نظر فقط إلى نص العنصر. أ <Description> ملفوفة في CDATA لأنها تحتوي على علامة الضم. كل واحدة من هذه البيانات أفسدت البيانات بصمت - فقد ظهر JSON بمظهر معقول وكان مخطئًا بطرق لم تظهر سوى ثلاث خدمات في اتجاه مجرى النهر.

يبدو أن XML وJSON يجب أن يتحولا بشكل تافه إلى بعضهما البعض، وهما لا يفعلان &#39؛ t، لأنهما يصممان البيانات باستخدام أساسيات مختلفة. يحتوي JSON على كائنات ومصفوفات وسلاسل وأرقام ومنطقيات وفارغة - مجموعة صغيرة ونظيفة. يحتوي XML على عناصر وسمات وعقد نصية ومحتوى مختلط ومساحات أسماء وبيانات CDATA وتعليقات وتعليمات معالجة، وهو أمر بالغ الأهمية لا المصفوفات و لا أنواع. لذلك يجب على المحول اتخاذ قرارات بأن التنسيق بدون فقدان البيانات سيكون &#39؛t: أين تذهب السمات عندما لا يكون لدى JSON مفهوم عنها؟ كيف يمكنك معرفة عنصر واحد من قائمة مكونة من عنصر واحد عندما يقوم XML بوضع علامة على كليهما بنفس الطريقة؟ ماذا يحدث لعنصر يحتوي على سمات ونص؟

آن محول XML إلى JSON وهذا يجعل هذه القرارات متعمدة - وبشكل متسق - هو الفرق بين التكامل النظيف وأسبوع من تصحيح الأخطاء. ينسب الجهاز الذي قمت بإنشائه لـ Toolz.dev تعيينات المفاتيح البادئة بحيث لا يتم فقدان أي شيء، ويطوي العلامات المتكررة في صفائف JSON بحيث يتم الحفاظ على البنية، ويحتفظ بنص المحتوى المختلط تحت مفتاح مخصص، ويقرأ CDATA حرفيًا. ويقوم بكل ذلك باستخدام محلل خالٍ من التبعية يعمل في متصفحك، وهو أمر مهم لأن حمولات التكامل هي بالضبط نوع البيانات التي يجب عليك &#39؛ يتم تحميلها على خادم غريب &#39؛s.

يغطي هذا الدليل كيفية تعامل التحويل مع المراوغات الهيكلية لـ XML&#39؛، عندما تصبح العناصر المتكررة صفائف، وكيفية التعامل مع السمات ومساحات الأسماء، وسير عمل SOAP وRSS حيث يحدث هذا التحويل باستمرار.

ليرة تركية؛DR: لصق XML في Toolz.dev XML إلى JSON Converterاختر المسافة البادئة واحصل على JSON نظيفًا حيث تصبح السمات @- المفاتيح ذات البادئات، والعلامات المتكررة تصبح صفائف، ويوجد نص المحتوى المختلط تحتها #textويتم قراءة CDATA حرفيًا. يتحول تحليل النوع الاختياري "44.95" في رقم حقيقي. يستخدم محللًا خاليًا من التبعية، ويعمل بنسبة 100% من جانب العميل حتى لا يتم تحميل حمولات SOAP والتكامل مطلقًا، ويتزاوج مع JSON إلى YAML و ال تنسيق JSON للخطوة التالية في خط الأنابيب الخاص بك.


لماذا يعتبر &#39؛t XML إلى JSON بمثابة رسم خرائط بسيط من واحد إلى واحد؟

إن الحدس بأن XML وJSON قابلان للتبديل يأتي من وظيفتهما المشتركة - التي تمثل البيانات المنظمة - وينقطع عن وحدات البناء المختلفة الخاصة بهما. يظهر عدم التطابق في أربعة أماكن محددة، وتتعلق جودة المحول &#39 بالكامل بكيفية التعامل معها.

السمات ليس لها ما يعادل JSON. <book id="bk101">War and Peace</book> لديه سمة (id) ومحتوى النص (War and Peace). ليس لدى JSON أي فكرة عن السمة؛ كل شيء عبارة عن زوج من القيمة الرئيسية. يجب أن يخترع المحول اصطلاحًا، والاتجاه السائد هو بادئة مفاتيح السمات - { "book": { "@id": "bk101", "#text": "War and Peace" } }. قم بإسقاط السمات، كما تفعل المحولات الساذجة، وأنت &#39؛ لقد فقدت البيانات بصمت.

لدى JSON صفائف؛ XML لا &#39؛ر. في XML، القائمة هي نفس العلامة المتكررة: ثلاثة <item> العناصر تحت أحد الوالدين. لكن واحد <item> يبدو مطابقًا من الناحية الهيكلية لقائمة واحدة. يحتاج JSON إلى معرفة ما إذا كان سيتم إصدار كائن أو مصفوفة، والإشارة الوحيدة المتاحة هي حدوث ذلك - لذلك تصبح العلامات المتكررة مصفوفات وتبقى العلامات الفردية كائنات.

محتوى مختلط. يمكن للعنصر أن يحمل كلاً من العناصر الفرعية والنص السائب. يمكن لكائنات JSON &#39؛t أن تمثل &quot بشكل طبيعي؛ يحتوي هذا الكائن أيضًا على قيمة سلسلة مجردة، &quot؛ لذلك يقع النص تحت مفتاح محجوز مثل #text.

الأنواع don&#39؛t موجودة في XML. كل قيمة في XML هي نص. <price>44.95</price> هو السلسلة "44.95"، ليس رقمًا، إلا إذا اختار المحول إجباره - وقد يكون هذا الاختيار خاطئًا، لأنه <zip>08544</zip> يجب أن تظل سلسلة أو تفقد الصفر البادئ.

ال محول يتعامل مع كل من هذه الأمور بشكل صريح بدلاً من التظاهر بأنها لا تفعل ذلك &#39؛ t موجود. That&#39؛s لماذا يظل الإخراج مخلصًا للمصدر بدلاً من إسقاط أجزاء XML التي لا يوجد لدى JSON فتحة لها بهدوء.

متى تصبح العناصر المتكررة مصفوفات؟

هذا هو الجزء الأكثر إرباكًا في تحويل XML إلى JSON، وهو &#39؛s يستحق الفهم بدلاً من المفاجأة به. القاعدة محول تعتمد الاستخدامات على الحدوث: داخل أصل معين، إذا ظهر اسم العلامة أكثر من مرة، تنهار قيمه إلى مصفوفة JSON؛ إذا ظهر مرة واحدة بالضبط، فإنه يبقى كائنًا أو قيمة واحدة.

لذا أ <catalog> مع اثنين <book> الأطفال ينتجون { "catalog": { "book": [ {...}, {...} ] } } - مجموعة. لكن أ <catalog> مع واحد <book> ينتج { "catalog": { "book": {...} } } - كائن عادي، لا يوجد مصفوفة.

النتيجة للتخطيط ل: قائمة بعنصر واحد لا &#39؛ تبدو وكأنها قائمة. إذا كان رمز المصب الخاص بك يتوقع catalog.book لكي تكون دائمًا مصفوفة وتتكرر عليها، فإن استجابة كتاب واحد ستكسرها، لأنه book سيكون كائنًا في ذلك الوقت المحدد. هذا هو &#39؛ خطأ في التحويل - it&#39؛s نتيجة لا مفر منها لعدم وضع علامات على قوائم XML - ولكنه &#39؛s مسكتك حقيقية في عمليات التكامل حيث يختلف عدد العناصر. كانت كارثة شركة الشحن الخاصة بي هي بالضبط ما يلي: أعادت أوامر الحزمة الواحدة كائنًا حيث أعادت أوامر الحزمة المتعددة مصفوفة، وافترضت التعليمات البرمجية الخاصة بي مصفوفة.

النمط الدفاعي في كود الاستهلاك الخاص بك هو التطبيع: إذا كان من الممكن أن يكون الحقل أيًا منهما، فقم بإجباره على مصفوفة قبل التكرار ([].concat(catalog.book)). معرفة لماذا يختلف الشكل وهو ما يتيح لك كتابة هذا الواقي بدلاً من أن تحترق به.

كيف يتم التعامل مع السمات ومساحات الأسماء؟

يتم تحويل السمات إلى مفاتيح الكائنات باستخدام @ البادئة. <user role="admin" active="true"> يصبح { "user": { "@role": "admin", "@active": "true" } }. تحافظ البادئة على السمات متميزة بصريًا عن العناصر الفرعية وتمنع الاصطدام حيث تشترك السمة والعنصر الفرعي في الاسم. إذا كنت لا &#39؛تحتاج إلى سمات على الإطلاق - فأنت تريد فقط بيانات العنصر - محول لديه &quot؛ تجاهل السمات والاقتباس؛ الخيار الذي يسقطها بالكامل للحصول على نتيجة أنظف.

تأتي مساحات الأسماء كجزء من اسم العلامة. <soap:Body> يصبح مفتاح اسمه حرفيا "soap:Body"، و xmlns:soap="..." هي سمة مثل أي سمة أخرى، الهبوط تحت @xmlns:soap. هذا هو الاختيار العملي: إن حل مساحات الأسماء بالكامل في عناوين URI الخاصة بها من شأنه أن ينتج مفاتيح غير عملية ونادرًا ما يطابق ما يريده رمز التكامل بالفعل، وهو ما يجب معالجته soap:Body باسمها البادئ المألوف. إذا كنت &#39؛ تقوم بمعالجة SOAP أو SVG أو أي مفردات ذات مساحة اسم، فإن البادئات التي تعرفها من XML هي المفاتيح التي تحصل عليها في JSON.

أقسام CDATA - <![CDATA[ ... ]]> تتم قراءة الكتل التي تسمح لـ XML بحمل نص خام بأحرف خاصة - حرفيًا، دون فك تشفير الكيان، وهو الغرض منها بالضبط. أ <script> أو <description> ملفوفة في CDATA لحماية علامات الضم وأقواس الزوايا الخاصة بها تأتي مع تلك الأحرف سليمة. خارج CDATA، الكيانات القياسية (&lt;، &amp;، والأصدقاء) والمراجع الرقمية (&#233;، &#xE9;) يتم فك تشفيرها إلى أحرفها الفعلية.

كيف يمكنك تحويل XML إلى JSON باستخدام الأداة؟

الخطوة 1: الصق XML الخاص بك

يعمل أي XML جيد التكوين - مع أو بدون <?xml ?> إعلان، مع أو بدون مساحات الأسماء. يتم التعرف على الإعلان وDOCTYPE والتعليقات وتعليمات المعالجة وتخطيها، حتى تتمكن من لصق مستند كامل مباشرة من استجابة API أو ملف. يمنحك زر تحميل العينة كتالوجًا يحتوي على سمات وعناصر متداخلة وعلامة متكررة، حتى تتمكن من رؤية كل سلوك تحويل في وقت واحد.

الخطوة 2: اختر خياراتك

اختر مسافة بادئة مكونة من 2 أو 4 مسافات لـ JSON. قرر ما إذا كنت تريد تضمين السمات أو إسقاطها. واختر ما إذا كنت تريد تحليل الأنواع: اتركها معطلة وتبقى كل قيمة سلسلة (آمنة، بدون فقدان)؛ قم بتشغيلها وتصبح الأرقام والمنطقيات التي لا لبس فيها أرقام JSON ومنطقية حقيقية. يعد إيقاف التشغيل هو الإعداد الافتراضي الصحيح عندما تحتوي قيم مثل الرموز البريدية أو المعرفات على أصفار بادئة تحتاج إلى الحفاظ عليها.

الخطوة 3: التحويل والمراجعة

يقوم المحول بالتوزيع أولاً والإبلاغ عن العلامات المشوهة - علامة إغلاق غير متطابقة، وعنصر غير مغلق، وكتلة CDATA غير منتهية - برسالة محددة بدلاً من إنتاج JSON غير متطابق. عند النجاح، يظهر JSON بعدد الأسطر والبايت. قم بتصفحه للتأكد من أن قرارات المصفوفة مقابل الكائن تتوافق مع توقعاتك.

الخطوة 4: النسخ أو التنزيل

انسخ JSON إلى الحافظة الخاصة بك للصقها في التعليمات البرمجية، أو قم بتنزيلها كـ .json ملف. من هنا يسقط في نص الطلب، أو مخزن البيانات، أو المرحلة التالية من خط الأنابيب الخاص بك. إذا كانت الخطوة التالية هي تنسيق التكوين، فإن محول JSON إلى YAML يأخذ الأمر أبعد من ذلك.

ما هي مسارات العمل المشتركة لهذا التحويل؟

دمج واجهات برمجة تطبيقات الصابون القديمة

لا يزال SOAP موجودًا في كل مكان في أنظمة المؤسسات والخدمات المصرفية والخدمات اللوجستية والأنظمة الحكومية، ويتحدث لغة XML حصريًا. عندما تحتاج خدمة JavaScript أو Node الحديثة إلى استهلاك استجابة SOAP، فإن تحويل مغلف XML إلى JSON هو الخطوة الأولى. يعني التحويل الحفاظ على مساحة الاسم soap:Body و soap:Envelope احتفظ بأسمائها المألوفة، وتحافظ معالجة السمات على البيانات الوصفية التي يحب SOAP تعليق العناصر. هذه هي نفس فئة أعمال الغراء المشمولة في دليل تصحيح API.

قراءة RSS وخلاصات الذرة

خلاصات RSS وAtom هي XML، وسحبها إلى تطبيق JavaScript يعني تحويلها. تغذية &#39؛s <item> العناصر هي حالة العلامات المتكررة للكتاب المدرسي - فهي تصبح مجموعة عناصر JSON، بالضبط ما تريده .map() انتهى لعرض القائمة. سمات مثل الضميمة &#39؛s url و type يتم الاحتفاظ بها تحت مفاتيحها البادئة، لذا تحافظ خلاصات البودكاست والوسائط على روابط الصوت الخاصة بها سليمة.

ترحيل التكوين وملفات البيانات

تقوم التطبيقات الأقدم بتخزين التكوين والبيانات بتنسيق XML - فكر .config الملفات وخرائط المواقع ومجموعات البيانات المصدرة وأجزاء Office Open XML. يعد تحويلها إلى JSON هو الخطوة الأولى عند تحديث النظام أو استيراد البيانات القديمة إلى متجر JSON الأصلي. يعد خيار تحليل النوع مفيدًا هنا عندما تقوم بذلك يعرف الحقول الرقمية رقمية حقًا وتريد كتابتها في الوجهة.

الاختبار والنماذج الأولية

عندما &#39؛ إعادة توصيل تدفق البيانات وتحتاج فقط إلى رؤية شكل حمولة XML كـ JSON - لتصميم واجهة TypeScript، للسخرية من الاستجابة، للتحقق من مسار الحقل - يتفوق التحويل السريع في المتصفح على كتابة كود المحلل اللغوي المهمل. تحويل، قراءة البنية، كتابة الأنواع الخاصة بك ضدها.

XML مقابل JSON: متى يكون كل تنسيق مناسبًا؟

XML JSON
العصر الأساسي &amp؛ النظام البيئي المؤسسة، الصابون، الوثائق واجهات برمجة تطبيقات الويب، جافا سكريبت، التكوين
سمات الصف الأول لا شيء - تم تعيينه للمفاتيح البادئة
المصفوفات لا شيء - العلامات المتكررة تشير إلى قوائم الصف الأول
أنواع كل النص السلاسل والأرقام والمنطقيات، فارغة
تعليقات مدعوم ليس في المواصفات
مساحات الأسماء الصف الأول لا شيء - يتم الاحتفاظ به كأسماء رئيسية مسبوقة
اللفظ أعلى - إغلاق العلامات والسمات السفلي - الأقواس والأقواس
موطن طبيعي SOAP، RSS/Atom، تنسيقات Office، التكوين واجهات برمجة تطبيقات REST، بيانات الواجهة الأمامية، package.json

النمط الموجود خلف الجدول: تم إنشاء XML للمستندات وتبادل المؤسسات حيث يكون الهيكل والتحقق والوصف الذاتي مهمًا؛ تم إنشاء JSON للويب حيث تكون الخفة والخريطة المباشرة لكائنات JavaScript مهمة. اتجاه التحويل هو في الغالب XML إلى JSON لأن الحركة في الصناعة هي من الأنظمة القديمة المستندة إلى XML نحو الواجهات الأمامية والخدمات الأصلية لـ JSON - you&#39؛ حيث تلبي البيانات القديمة حيث تعيش وتضعها في خط أنابيب حديث. المجموعة الأوسع من أدوات التنسيق لخط الأنابيب هذا موجودة في دليل أدوات الترميز.

هل من الآمن تحويل XML الذي يحتوي على بيانات حساسة؟

حمولات التكامل كثيفة بالأشياء التي تفعلها &#39؛ تريد التسريب: استجابات SOAP التي تحمل سجلات العملاء، وملفات التكوين مع نقاط النهاية الداخلية وبيانات الاعتماد، وتصدير البيانات مع المعلومات الشخصية. وهذا هو بالضبط ما يتم لصقه في المحولات عبر الإنترنت، عادةً في منتصف التكامل، وعادةً ما يكون على عجل.

ال محول Toolz.dev يقوم بالتوزيع والتحويل بالكامل في متصفحك باستخدام محلل خالٍ من التبعية - لا DOMParser، لا يوجد استدعاء للخادم، ولا توجد بيانات تغادر الصفحة. افصل شبكتك بعد تحميل الصفحة وستظل تعمل. That&#39؛s حقيقة معمارية حول كيفية إنشاء الأداة، وليس وعدًا في مستند السياسة، وهو&#39؛s مبدأ المتصفح الأول وراء صندوق الأدوات بأكمله، المفصل في دليل خصوصية البيانات.

ينطبق التحذير القياسي: التحويل من جانب العميل يحمي خطوة التحويل. ما تفعله بـ JSON بعد ذلك - حيث تقوم بلصقه، وما ترسله إليه - هو قرار منفصل. لكن التحويل نفسه يحافظ على XML الخاص بك على جهازك.

أسئلة وأجوبة

كيف أقوم بتحويل XML إلى JSON عبر الإنترنت؟

الصق XML الخاص بك في محول XML إلى JSON وانقر فوق تحويل. تقوم الأداة بتوزيع XML، وتحويلها إلى JSON بالمسافة البادئة والخيارات التي اخترتها، وتتيح لك نسخ النتيجة أو تنزيلها. تتم المعالجة بنسبة 100% داخل المتصفح - ولا يتم تحميل أي شيء.

كيف يتم تمثيل سمات XML في إخراج JSON؟

تصبح السمات مفاتيح كائنات مسبوقة بـ @، لذا فإن عنصر الكتاب ذو المعرف=&quot؛bk101&quot؛ يتحول إلى &quot؛@id&quot؛ مفتاح. يؤدي هذا إلى إبقاء السمات متميزة عن العناصر الفرعية. يمكنك إيقاف تشغيل إخراج السمات بالكامل باستخدام خيار تجاهل السمات إذا كنت بحاجة فقط إلى بيانات العنصر.

لماذا تصبح بعض عناصر XML مصفوفات والبعض الآخر يبقى كائنات؟

ليس لدى JSON أي طريقة لتحديد إمكانية تكرار عنصر ما، لذلك يستخدم المحول التكرار: إذا ظهرت علامة أكثر من مرة تحت نفس الأصل فإنها تصبح مصفوفة، وإذا ظهرت بمجرد أن تظل كائنًا واحدًا. وهذا يعكس المصدر بأمانة، على الرغم من أنه يعني أن القائمة التي تحتوي على عنصر واحد تبدو وكأنها كائن واحد وليس مصفوفة.

هل يتعامل المحول مع أقسام CDATA وكيانات XML؟

نعم. تتم قراءة كتل CDATA حرفيًا دون فك تشفير الكيان، وهذا هو الغرض منها. خارج CDATA، الكيانات القياسية مثل &lt؛، &gt؛، &amp؛، &quot؛ و&apos؛ ومراجع الأحرف الرقمية مثل &#233؛ و &#xE9؛ يتم فك تشفيرها إلى أحرفها الفعلية.

هل يمكنني تحويل استجابة SOAP أو موجز RSS إلى JSON؟

نعم. تعتبر مظاريف SOAP وخلاصات RSS أو Atom لغة XML عادية، لذا فهي تتحول مثل أي مستند آخر. تحتفظ علامات Namesspaced بالبادئة الخاصة بها في اسم المفتاح - الصابون: يصبح الجسم &quot؛ الصابون: الجسم والاقتباس؛ المفتاح - والعناصر المتكررة مثل عناصر RSS تصبح مصفوفة JSON يمكنك تعيينها.

هل ستبقى الأرقام والإحصاءات النصية بعد التحويل؟

افتراضيًا نعم، لأن XML لا يحتوي على نظام كتابة وقيم مثل &quot؛007&quot؛ أو &quot؛1.10&quot؛ قد يكون ذا معنى كنص. قم بتمكين خيار تحليل الكتابة لتحويل النص الرقمي والمنطقي الذي لا لبس فيه إلى أرقام JSON ومنطقيات حقيقية عندما يكون هذا هو ما تريده.

هل من الآمن تحويل XML الذي يحتوي على بيانات حساسة؟

نعم. يعمل المحلل اللغوي بالكامل بلغة JavaScript في متصفحك - لا يحمل أي طلب شبكة بياناتك، ولا يتم تسجيل أي شيء أو تخزينه، وتعمل الأداة دون اتصال بالإنترنت. XML مع سجلات العملاء أو المعرفات الداخلية أو أسرار التكامل لا يترك جهازك أبدًا.

ما هو الفرق بين XML و JSON؟

XML هي لغة ترميزية تحتوي على علامات الفتح والإغلاق والسمات ومساحات الأسماء والتعليقات، وهي مصممة للمستندات وتبادل بيانات المؤسسة. JSON هو تنسيق أخف تم إنشاؤه من الكائنات والمصفوفات والقيم البدائية، وهو التنسيق الافتراضي لواجهات برمجة تطبيقات الويب الحديثة. يعد تحويل XML إلى JSON أمرًا شائعًا عند دمج SOAP الأقدم أو الأنظمة المستندة إلى الخلاصات مع واجهات JavaScript الأمامية.


يبدو XML وJSON قابلين للتبديل وهما &#39؛t، نظرًا لأن JSON ليس لديه سمات، ولا مصفوفات بالتكرار، ولا يوجد نص جنبًا إلى جنب مع الأطفال - فإن الأماكن الدقيقة للتحويل الساذج تفقد البيانات بصمت. يمنحك المحول الذي يتعامل مع هذه الحالات عن قصد JSON that&#39؛s مخلص للمصدر: الصق XML الخاص بكتحقق من كيفية تعيين السمات والعلامات المتكررة، وقم بإدخال بيانات نظيفة في خط الأنابيب الخاص بك بدلاً من الفساد المعقول المظهر.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!