XML ל ממיר JSON
המר נתוני XML או קבצים לפורמט JSON באופן מיידי בדפדפן שלך. תומך בהזחה מותאמת אישית ומטפל במבנים מקוננים.
בחר קובץ XML
או גרור ושחרר כאן
המר נתוני XML או קבצים לפורמט JSON באופן מיידי בדפדפן שלך. תומך בהזחה מותאמת אישית ומטפל במבנים מקוננים.
או גרור ושחרר כאן
XML ו-JSON שניהם פורמטים להחלפת נתונים אך מגיעים מתקופות שונות של האינטרנט. XML, שתוקנן בשנת 1998, תוכנן כפורמט סימון המתאר את עצמו עם תכונות, מרחבי שמות ואימות סכימה. JSON הופיע בתחילת שנות ה-2000 כפורמט קל משקל יותר המתאים יותר לזמני ריצה של JavaScript וממשקי API מודרניים. רוב ממשקי ה-API החדשים באינטרנט מדברים JSON; מערכות ישנות רבות - שירותי SOAP, הזנות RSS, קבצי תצורה, אינטגרציות ארגוניות - עדיין מייצרות XML. המרה ביניהם היא אחת ממשימות האינטררופ הנפוצות ביותר בפיתוח מודרני.
ההמרה אינה נטולת אובדן לחלוטין מכיוון שלשני הפורמטים יש כוח הבעה שונה. ל-XML יש תכונות (שאין ל-JSON באופן מקורי), מבחין בין תוכן טקסט ושמות אלמנטים ותומך בתוכן מעורב (אלמנטים המכילים טקסט ואלמנטים צאצאים כאחד). מודל האובייקט/מערך הפשוט של JSON אינו יכול לייצג ישירות את התכונות הללו, ולכן ממירים מיישמים מוסכמות: תכונות הופכות למפתחות עם קידומת @, תוכן טקסט הופך למפתח #טקסט וכן הלאה.
ממיר זה מנתח את ה-XML באמצעות DOMParser המובנה בדפדפן ועובר על עץ ה-DOM שנוצר כדי לייצר JSON. אלמנטים בעלי שם תג זהה לזה של אחים נאספים למערכים; תכונות נכנסות למפתחות מיוחדים; מרחבי שמות והוראות עיבוד נשמרים כאשר הם קיימים. התוצאה היא JSON קריא לאדם שחוזר חזרה ל-XML באופן סביר.
רוב קוד היישומים המודרני נוח יותר עם JSON. JavaScript מנתח את JSON באופן מקורי, מודול ה-json של Python נמצא בספרייה הסטנדרטית, ולמעשה לכל שפה אחרת יש תמיכה מקבילה ב-JSON ממדרגה ראשונה. עיבוד XML מצריך ייבוא ספריות נוספות וכתיבת לוח נוסף. המרת XML נכנסת ל-JSON לפני עיבוד היא לרוב הנתיב המהיר ביותר מהזנת XML חיצונית למבנה נתונים פנימי.
Tooling גם נוטה ל-JSON. מיפיפי JSON, מאמתים, מאמתים של סכמות, שפות שאילתות (jq, JSONPath) וצופים יש בשפע; המקבילות ל-XML הן פחותות ולעתים קרובות ישנות יותר. עבודה ב-JSON פותחת מערכת אקולוגית עשירה יותר של כלים.
הדבק XML, קבל JSON.
DOMParser מייצר DOM של XML זהה למה שהדפדפן משתמש עבור דפי XHTML. הממיר הולך על DOM זה באופן רקורסיבי. עבור כל אלמנט הוא יוצר אובייקט JSON: תכונות הופכות למפתחות עם קידומת @ (למשל, @id, @class); רכיבי הצאצא של האלמנט חוזרים לאותו מבנה; תוכן טקסט, כשהוא קיים לצד ילדים, חי תחת מפתח #טקסט.
רכיבי צאצא חוזרים עם אותו שם תג נאספים לתוך מערך JSON. צאצא בודד בשם פרטי מופיע כערך אובייקט; ילדים מרובים מופיעים כמערך של אובייקטים. מוסכמה זו פועלת היטב בפועל, אך פירושה שצורת ה-JSON תלויה בשאלה אם אלמנטים מופיעים פעם אחת או מספר פעמים - חוסר שלמות ידוע של מיפוי XML-to-JSON.
מרחבי השמות נשמרים כחלק משמות האלמנטים (תחילית:שם מקומי). הוראות עיבוד וקטעי CDATA מומרים לתוכן טקסט. הצהרות XML ו-DOCTYPE נמחקים מפלט JSON אך אינם משפיעים על הנתונים.