onlinetools.dev

Конвертер XML ↔ JSON

Конвертируйте XML-документы в JSON и обратно, включая атрибуты

Работает локально
loading…
Об этом инструменте

Конвертируйте XML в JSON, чтобы скормить старые SOAP-ответы, RSS-ленты или Maven POM в JavaScript, jq или JSON-ориентированный API — или идите в обратную сторону и получайте XML из JSON-данных. Атрибуты сохраняются: они становятся ключами "@_name", а текст, соседствующий с атрибутами, попадает в "#text", так что никакая информация молча не пропадает.

Два формата расходятся в фундаментальных вещах, и этот конвертер делает стандартный прагматичный выбор: повторяющиеся соседние элементы сворачиваются в JSON-массив, значения, похожие на числа, становятся числами, а пространства имён путешествуют как часть имени элемента. Круговая конвертация XML → JSON → XML сохраняет структуру и содержимое для типичных документов.

Оба направления работают локально в вашем браузере. Вставляйте ленту счетов или ответ API — они никуда не уйдут.

Частые вопросы

Почему некоторые значения возвращаются числами, а не строками?
Парсер распознаёт числовой текст и конвертирует его — обычно именно это и нужно потребителю. Остерегайтесь идентификаторов с ведущими нулями (коды товаров, номера телефонов) — если для ваших данных это важно, заключите их в кавычки после конвертации или считайте вывод отправной точкой.
Как обрабатываются повторяющиеся элементы?
Два и более соседних элемента с одним именем становятся JSON-массивом под этим ключом. Единственное вхождение остаётся обычным объектом — эта асимметрия присуща самому отображению, поэтому код, потребляющий JSON, должен принимать обе формы либо сначала нормализовать.
Что означают ключи @_ и #text?
@_ помечает то, что было XML-атрибутом; #text несёт текст элемента, когда при нём есть и атрибуты. Подача той же конвенции обратно в направление JSON → XML восстанавливает исходную разметку.
Почему JSON → XML отвергает мой массив верхнего уровня?
У XML-документа должен быть ровно один корневой элемент, а у голого массива его нет. Оберните массив в объект — {"items": {"item": [...]}} — и конвертер выдаст корректный документ.
Похожие инструменты