Що таке конвертація XML ↔ JSON?
XML (Extensible Markup Language) — це теговий текстовий формат для ієрархічних даних. Він використовується у SOAP-вебсервісах, стрічках RSS і Atom, медичних записах HL7 FHIR, файлах sitemap.xml та конфігураційних файлах Maven, Spring і Android Gradle. JSON (JavaScript Object Notation, визначений у RFC 8259) описує той самий тип вкладених даних, але з фігурними дужками та масивами замість відкриваючих і закриваючих тегів. JSON — це те, що сьогодні говорить практично кожен REST API, і це нативна форма значень кожного браузерного рантайму. Конвертація між двома форматами здається тривіальною, поки не зустрінете атрибути, змішаний вміст, повторювані нащадки та CDATA. Власний regex — неправильна відповідь; справжній парсер — правильна. Цей інструмент постачає справжній парсер (fast-xml-parser) і запускає його у вашому браузері.
Як працює відображення XML ↔ JSON?
Кожне перетворення виконується локально у вашому браузері за допомогою вбудованої бібліотеки fast-xml-parser (MIT, версія 4.x). Основні правила відображення:
- Елемент у ключ: кожне ім'я XML-елемента стає ключем JSON-об'єкта.
<user><name>Alice</name></user>відображається на{"user":{"name":"Alice"}}. - Атрибут у ключ з префіксом: атрибут зберігається під ключем, утвореним додаванням вибраного префіксу. З префіксом
@,<user id="1">дає{"user":{"@id":"1"}}. - Текстовий вміст у ключ текстового вузла: коли елемент має і атрибути, і текст, текст потрапляє під вибраний ключ текстового вузла.
<price currency="USD">9.99</price>з ключем#textдає{"price":{"@currency":"USD","#text":"9.99"}}. - Повторювані нащадки в масив: коли увімкнено Примусовий масив для повторюваних дочірніх тегів, кілька елементів-сиблінгів з однаковим ім'ям згортаються в JSON-масив.
<items><item>A</item><item>B</item></items>стає{"items":{"item":["A","B"]}}. - Секції CDATA: необроблений текст усередині
<![CDATA[…]]>зберігається під ключем#cdata, щоб кутові дужки та амперсанди не перекодовувалися під час зворотного перетворення. - JSON до XML реверсує відображення: ключі об'єктів стають елементами, ключі з префіксом стають атрибутами, а масиви розгортаються у повторювані елементи-сиблінги.
Чому варто конвертувати XML та JSON цим інструментом?
- Ваші дані залишаються на вашому пристрої. Кожен розбір і кожна побудова виконуються в JavaScript-контексті цієї сторінки. FHIR-пакети пацієнтів, SOAP-конверти автентифікації, конфіденційні файли конфігурації, білінгові експорти — нічого з цього не торкається наших серверів, бо в коді немає кроку завантаження. Відкрийте панель мережі та переконайтеся.
- SOAP до REST-орієнтованого фронтенду — найпоширеніший запит. Банк або страхова компанія відкриває SOAP-ендпоінт, який ще роками не буде виведений з експлуатації; React або Vue-застосунок, що звертається до нього, не хоче вчити XML. Вставте конверт, отримайте JSON назад з префіксованими атрибутами та збереженими просторами імен, помістіть вміст
Bodyу ваше сховище стану. - Споживачі RSS, Atom та sitemap також отримають користь. Директорій подкастів, агрегатор новин або внутрішній дашборд, що споживає
sitemap.xml, можуть повністю оминути написання XML-парсера. Конвертуйте стрічку один раз, працюйте з JSON-масивом, і ваш клієнтський код залишається у тій мові, якою вже розмовляє. - Конфігураційний експорт завершує список. Maven, Spring, Android Gradle та старі збірки Ant генерують XML; хмарні нативні інструменти на іншому кінці (Terraform, Ansible, GitHub Actions, cloud-init) читають JSON або YAML. Конвертуйте у браузері замість запуску Python-скрипта зі стороньою залежністю — особливо корисно у повітряно-ізольованих середовищах, де вставка в невідомий вебсервіс є неприйнятною.
Які поширені застосування конвертації XML ↔ JSON?
З'єднання XML та JSON трапляється в інтеграційній інженерії, API-інструментах та інженерії даних. Кілька шаблонів домінують у навантаженні:
- Зв'язок SOAP з REST: витягування навантаження
Bodyз SOAP-конверта, поверненого застарілим банківським або страховим API, та конвертація його у JSON, щоб фронтенд React або Vue міг споживати його без серверного проксі. - Медичні записи FHIR: конвертація XML-пакетів HL7 FHIR у JSON для завантаження в колекцію MongoDB Atlas або стовпець PostgreSQL JSONB, де аналітики можуть їх запитувати.
- Обробка sitemap та стрічок: перетворення
sitemap.xmlабо стрічки RSS/Atom у JSON-масив, щоб власний індексатор, бот Slack або віджет дашборду міг ітерувати записи без підключення XML-парсера як залежності.
Як виглядає зворотне перетворення XML ↔ JSON?
Невеликий приклад. Вставте <user id="1"><name>Alice</name></user> у введення, встановіть префікс атрибутів на @, залиште режим XML до JSON і натисніть Конвертувати. Вивід: {"user":{"@id":"1","name":"Alice"}}. Переключіть режим на JSON до XML, вставте цей JSON назад, встановіть відступ 2 пробіли і натисніть Конвертувати знову. Отримаєте <user id="1">\n <name>Alice</name>\n</user>, структурно ідентичний оригіналу. Єдина невизначеність при зворотному перетворенні — порядок атрибутів, бо ключі JSON-об'єктів невпорядковані за специфікацією.
Цей конвертер XML ↔ JSON постачає fast-xml-parser@4, вбудований у той самий ресурс, обробляє атрибути, CDATA, повторювані дочірні теги та префікси просторів імен і продовжує працювати офлайн після завантаження сторінки. Без кроку завантаження, без CDN-проксі, без аналітичного маяка, без жодної телеметрії. Кожен байт введення та виводу залишається у вашому браузері — саме те, що потрібно, коли навантаженням виявляється FHIR-пакет пацієнта, SOAP-конверт автентифікації або будь-яка інша форма даних, яку ніхто поза вашою командою не повинен бачити.