طريقة تحويل XML إلى JSON
أداة تحوّل مستند XML إلى JSON محافظة على تسلسل العناصر المتداخلة وسماتها، فتحصل على بنية بيانات يسهل على أي لغة برمجة قراءتها مباشرة. تعمل داخل متصفحك دون رفع الملف لأي خادم، وتناسب من يستهلك تغذية RSS أو رد واجهة برمجية قديمة بصيغة XML ويحتاج تمريره إلى نظام حديث يفهم JSON فقط.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
الفرق بين عنصر وسمة عند التحويل
يميّز XML بين محتوى العنصر وسماته الموصوفة داخل الوسم نفسه، وهو تمييز لا وجود له في JSON. تحلّ الأداة هذا بوضع السمات في حقل منفصل داخل الكائن الناتج، عادة بادئة مميزة، بينما يحمل محتوى العنصر مفتاحه الخاص. هذا يحافظ على كل معلومة موجودة في الملف الأصلي دون خلط سمة بمحتوى، وهي نقطة تكسر فيها كثير من المحوّلات البسيطة عند مستندات XML الحقيقية المعقّدة والطويلة.
العناصر المتكررة تصبح مصفوفة
حين يتكرر وسم بالاسم نفسه داخل عنصر أب واحد — كعناصر منتج متعددة داخل كتالوج — تجمعها الأداة تلقائيًا في مصفوفة واحدة مرتبة بدل الاحتفاظ بواحد فقط أو تجاهل التكرار كليًا. أما العنصر الذي يظهر مرة واحدة فقط فيبقى كائنًا مفردًا لا مصفوفة من عنصر واحد فيها، فتبقى بنية الناتج قريبة مما يتوقعه أي مطوّر يقرأ JSON مباشرة دون تفسير إضافي لكل حقل فيه بمفرده.
الاستخدام من الصفحة مباشرة
ألصق كود XML أو ارفع الملف، شغّل الأداة، وانسخ نتيجة JSON أو نزّلها. تجري المعالجة داخل متصفحك: لا يغادر الملف جهازك، ولا حدّ لعدد المرات، ولا حاجة لتسجيل. تناسب ملفات تصل حتى 25 MB، وتعمل من الجوال بالطريقة نفسها التي تعمل بها من الحاسوب. تُعرَض بنية JSON الناتجة بإزاحة واضحة تسهّل مراجعة العناصر المتداخلة بالعين قبل نسخها إلى المشروع النهائي مباشرة.
الأتمتة عبر الـAPI لتغذيات متكررة
من يستهلك تغذية XML بانتظام — كردود واجهة برمجية قديمة أو ملف تصدير يومي من نظام قديم — يحتاج التحويل ضمن مسار آلي لا لصقًا يدويًا كل مرة. نفس المحرك متاح عبر الـAPI بسعر ثابت قدره $0.002 للمستند الواحد، دون اشتراك شهري، مناسب لخط بيانات يعالج عشرات الملفات يوميًا. النتيجة نفسها التي تظهر على الصفحة تصل عبر الاستدعاء البرمجي، فلا حاجة لاختبار سلوك مختلف بين الاستخدامين.
حالات الاستخدام
دمج تغذية RSS في تطبيق حديث
يستهلك مطوّر في شركة الخليج الرقمية تغذية RSS بصيغة XML من موقع شريك، ويحوّلها إلى JSON عبر الـAPI ليدمجها مباشرة في تطبيق الجوال الحديث.
قراءة رد واجهة برمجية حكومية قديمة
يتعامل نظام مؤسسة النخيل للمقاولات مع واجهة برمجية حكومية ترد بصيغة XML فقط؛ يحوّل الرد إلى JSON قبل معالجته في النظام الداخلي الحديث.
ترحيل بيانات منتجات من نظام قديم
يصدّر متجر عبدالله المنصوري كتالوج منتجاته من نظام تجارة إلكترونية قديم بصيغة XML، ويحوّله إلى JSON عند الانتقال لمنصة جديدة.
الأسئلة الشائعة
هل تُحفظ سمات العنصر أم تُفقد أثناء التحويل؟
تُحفظ في حقل منفصل داخل الكائن الناتج، فلا تفقد أي معلومة موجودة في ملف XML الأصلي.
ماذا يحدث للعناصر المتكررة بالاسم نفسه؟
تُجمَع تلقائيًا في مصفوفة واحدة، بينما يبقى العنصر الفريد كائنًا مفردًا.
هل الأداة مجانية؟
نعم، داخل المتصفح بلا حدّ وبلا تسجيل. المدفوع فقط عبر الـAPI بسعر $0.002 للمستند.
هل يُرسل ملفي إلى خادم؟
لا، عند الاستخدام من هذه الصفحة تجري المعالجة داخل متصفحك فقط.
ما أقصى حجم ملف مدعوم؟
25 ميغابايت في الطلب الواحد.
هل يعمل مع ملفات XML التي تحتوي مساحات أسماء (namespaces)؟
نعم، تُحفظ بادئة المساحة ضمن اسم العنصر في الناتج، دون حذفها.
هل يعمل من الجوال؟
نعم، بالطريقة نفسها التي يعمل بها من الحاسوب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/data/xml-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/xml-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/xml-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/xml-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/xml-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"input": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.xml_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |