Блог
Русский

Конвертер XML в JSON онлайн

Атрибуты XML становятся ключами @, повторяющиеся элементы — массивами

Работает в браузере · файлы никуда не загружаются

Атрибуты записываются как @имя, текст в смешанном содержимом — как #text. Повторяющиеся соседние элементы с одним именем становятся массивом. Все значения остаются строками. Точный порядок смешанного содержимого не сохраняется. DTD не поддерживается.

Результат

Как пользоваться

  1. Вставьте XML-документ с одним корневым элементом.
  2. Проверьте ключи атрибутов и массивы из повторяющихся элементов.
  3. Скопируйте полученный JSON в своё приложение или инструмент анализа.

Правила преобразования

Корневой тег сохраняется как внешний ключ JSON. Атрибуты получают префикс @, например @id. Повторяющиеся дочерние элементы с одним именем внутри одного родителя становятся массивом. Элемент без атрибутов и дочерних элементов превращается в строку, а пустой элемент — в пустую строку. CDATA и стандартные ссылки на символы XML читаются как текст.

Если у элемента есть дочерние элементы, его непосредственный текст собирается в #text. Пробельные символы форматирования вокруг дочерних элементов отбрасываются. Взаимный порядок текста и вложенных элементов в смешанном содержимом не сохраняется. Комментарии и инструкции обработки опускаются. Префиксы пространств имён и атрибуты xmlns сохраняют исходные имена, без перестройки с учётом пространств имён.

Примеры

<r><item>Привет</item><item>中文😀</item></r> даёт массив item внутри r. <price currency="RUB">001</price> даёт @currency со значением RUB и #text со строкой 001.

Проверка и ограничения

Незакрытые теги, несколько корневых элементов и неизвестные сущности приводят к ошибке. Объявления DTD и сущностей не поддерживаются. Размер ввода — до миллиона символов, вложенность — до 64 уровней. Такое отображение удобно для просмотра данных, но это не сериализация XML без потерь. Результат — обычный текст, и всё преобразование происходит локально в браузере.

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

Преобразуются ли значения, похожие на числа, в числа?

Нет. Текст элементов и значения атрибутов остаются строками, поэтому ведущие нули, как в 001, сохраняются.

Сохраняется ли порядок в смешанном содержимом?

Нет. Непосредственный текст собирается в #text. Взаимное расположение текста и дочерних элементов не сохраняется.

Может ли инструмент загружать DTD или внешние сущности?

Нет. Объявления DOCTYPE и ENTITY отклоняются. Инструмент не загружает внешние документы и не раскрывает объявленные сущности.

Куда отправляется мой XML?

Никуда. Преобразование выполняется локально в браузере.

Не нашли нужный инструмент?