Перейти к содержимому

Конвертировать XML в JSON

Преобразуйте XML-документ в JSON: атрибуты станут ключами с @, повторяющиеся элементы — массивами, а числа получат тип. Разбор выполняет встроенный XML-парсер вашего браузера на устройстве.

Конвертировать в
Перетащите файл XMLXML до 100 MB · JSON, CSV, XLSX, XLS, ODS до 500 MB
Выбрать файлОбработка на вашем устройстве — файлы не покидают его
Работает в браузере · без загрузки на серверКак это работает

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

  1. 1

    Вставьте или перетащите XML

    Файл .xml, RSS- или Atom-лента, ответ SOAP или любой XML-текст; кодировка из объявления в документе учитывается.

  2. 2

    Настройте структуру JSON

    Атрибуты как ключи с @, как обычные ключи или без них; массивы только для повторяющихся элементов или везде; числа как числа или как текст.

  3. 3

    Скопируйте JSON

    С отступами или в компактном виде: скопируйте в буфер обмена или скачайте файл .json.

Лимиты и Pro

XML-файлы до 100 MB, вставленный XML любого размера, который выдержит ваш браузер.

О инструменте «XML в JSON»

Конвертер XML в JSON выручает, когда API, госпортал или старая интеграция отдаёт XML, а вашему коду нужен JSON. Корневой элемент документа становится единственным ключом верхнего уровня, каждый дочерний элемент — свойством, а элемент, который встречается несколько раз внутри одного родителя, — массивом в порядке следования в документе.

С атрибутами нужно определиться, потому что в JSON их нет. По умолчанию они записываются как ключи с префиксом @: <price currency="UZS">125000</price> превращается в {"@currency": "UZS", "#text": 125000}. Так атрибуты и дочерние элементы не смешиваются, а JSON можно превратить обратно в тот же XML. Обычные ключи дают более короткие объекты, а если атрибуты в документе служебные, их можно не переносить вовсе.

Значения: при включённом распознавании типов 42 и 3.5 становятся числами JSON, а true/false — логическими значениями. Но всё, что при чтении как число изменилось бы, остаётся строкой: почтовые индексы и номера счетов с ведущими нулями, числа длиннее 15 цифр. Пустые элементы становятся пустыми строками.

Пространства имён сохраняются как есть (dc:title), либо префиксы можно убрать ради более чистых ключей, тогда пропадут и объявления xmlns. Параметр «Всегда использовать массивы» даёт всем дочерним элементам одинаковую форму массива, это удобно, когда у одних записей один автор, а у других три.

Не переносятся комментарии, инструкции обработки и DOCTYPE; текст, смешанный со встроенными тегами, как в абзацах XHTML, склеивается в одну строку.

Конфиденциальность

XML разбирается в фоновом процессе этой страницы без сетевых запросов; DTD и внешние сущности не загружаются, а документ не покидает ваше устройство.

XML в JSON: частые вопросы

Что означает #text в JSON?
Если у элемента есть атрибуты или дочерние элементы и при этом собственный текст, для текста нужен отдельный ключ; #text — распространённое соглашение. <title lang="en">Guide</title> превращается в {"@lang": "en", "#text": "Guide"}. Элемент, в котором только текст, становится обычным значением: <title>Guide</title> — это просто "title": "Guide".
Числа преобразуются или остаются строками?
Если включён параметр «Распознавать числа и true/false», значения, которые явно являются числами или логическими, получают типы JSON. Значения с ведущими нулями, например 007 или почтовый индекс, и числа длиннее 15 цифр остаются строками, потому что преобразование изменило бы их. Отключите распознавание, чтобы сохранить все значения точно как текст.
Как обрабатываются пространства имён вроде soap: или dc:?
По умолчанию префиксы остаются частью ключа: dc:title — это ключ "dc:title", а объявления xmlns попадают как атрибуты @xmlns. Включите «Убрать префиксы пространств имён», чтобы получить title и не переносить объявления. Тогда два разных пространства с одинаковым локальным именем получат общий ключ, поэтому если это важно, оставьте префиксы.
Можно ли потом превратить JSON обратно в XML?
Да. Переключите направление на XML на странице «JSON в XML»: ключи с @ станут атрибутами, #text — текстом элемента, а массивы — повторяющимися элементами. Порядок элементов внутри родителя может измениться, если имена дочерних элементов чередовались, и комментарии пропадут, но сами данные при обратном преобразовании сохранятся.
Почему вместо JSON появляется ошибка?
XML составлен некорректно, а в сообщении указаны строка и столбец первой проблемы. Частые причины: & вместо &amp;, теги, закрытые в неверном порядке, значение атрибута без кавычек или HTML-сущности вроде &nbsp;, которых нет в XML. Исправьте это место и вставьте текст снова.

Другие задачи с этим инструментом