UltKit
Изображения11
PDF13
Документы и данные7
Видео6
Аудио4
Другие инструменты22

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

Перенесите данные из ответа SOAP, RSS-ленты, файла конфигурации или выгрузки из устаревшей системы в JSON, который JavaScript, Python или no-code-сервис читают напрямую, без написания собственного парсера.

Конвертер данных

или перетащите сюда файлы CSV, TSV, TXT … ·

Макс. 95 MB на файл· До 20 файлов· Удаляются через 30 минут

Вывод

Файлы обрабатываются на наших серверах и удаляются через 30 минут.

Как пользоваться инструментом

  1. 1

    Загрузите XML

    Перетащите .xml-файлы в область загрузки: до 20 файлов за раз, каждый до 95 MB. Каждый файл конвертируется отдельно.

  2. 2

    Выберите читаемый или компактный вид

    Режим Форматирование с отступами включён: JSON выводится с отступами, так его удобнее читать и проверять в код-ревью. Отключите его в разделе Расширенные настройки, чтобы получить самый компактный результат в одну строку для API.

  3. 3

    Конвертируйте и используйте JSON

    Нажмите Преобразовать в JSON, скачайте .json-файл и загрузите его в свой код или инструмент.

Загрузите XML и нажмите Преобразовать в JSON: элементы станут ключами, повторяющиеся элементы массивами, а атрибуты сохранятся как ключи с префиксом @, так что информация из тегов не потеряется.

Кому нужен конвертер XML в JSON

XML 1.0 стал рекомендацией W3C в феврале 1998 года, и следующее десятилетие системы общались именно на нём: веб-сервисы SOAP, ленты RSS и Atom, документы Office, банковские сообщения, каталоги товаров. Многие такие системы работают до сих пор. JSON, описанный в RFC 8259, занял место в новых веб-API, потому что JavaScript читает его без библиотеки-парсера и потому что он напрямую соответствует спискам и словарям почти в любом языке.

Поэтому конвертируют обычно те, кто соединяет две эпохи. Фронтенд-разработчик получает SOAP-ответ платёжного или курьерского сервиса и хочет простой объект. Автоматизатор в Zapier или Make загружает XML-ленту поставщика в сценарий, которому удобнее JSON. Инженер данных переносит конфигурации из старого Java-приложения, а студенту нужна RSS-лента в JSON для учебного проекта. Всем нужна та же структура без угловых скобок.

Конвертировать XML в JSON: как переносятся теги, атрибуты и текст

Входной XML: заказ с атрибутом, одним покупателем и двумя товарами
<order id="A-77">
  <customer>Елена Ортис</customer>
  <total currency="EUR">59.90</total>
  <item sku="0042">Настольная лампа</item>
  <item sku="0108">Светодиодная лампочка</item>
</order>
Как каждая часть заказа выше выглядит в JSON
Конструкция XMLПримерРезультат в JSON
Корневой элемент<order>Ключ верхнего уровня order
Атрибутid="A-77""@id": "A-77"
Элемент только с текстом<customer>"customer": "Елена Ортис"
Текст и атрибут<total currency="EUR">59.90</total>{"@currency": "EUR", "#text": "59.90"}
Повторяющийся элементдва тега <item>массив "item": [ … , … ]
Комментарий<!-- note -->Отбрасывается: в JSON нет комментариев

XML

Extensible Markup Language

XML — язык разметки для структурированных данных, опубликованный W3C в 1998 году. Он использует вложенные теги с атрибутами и поддерживает схемы, пространства имён и валидацию, что делает его надёжным для сложных документов. На нём основаны RSS-ленты, SVG, документы Office, карты сайтов и многие корпоративные и государственные системы обмена данными. XML многословнее JSON, но его читает любой язык программирования и многие табличные программы.

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
1998 · W3C
Конвертер XML

JSON

Формат JSON (JavaScript Object Notation)

JSON — лёгкий текстовый формат для структурированных данных, который популяризировал Дуглас Крокфорд в начале 2000-х; он стандартизован как RFC 8259 и ECMA-404. Он описывает объекты, массивы, строки, числа, логические значения и null с помощью простого и читаемого синтаксиса. Это формат по умолчанию для веб-API, файлов конфигурации и обмена данными между приложениями практически на любом языке программирования. В нём нет встроенных комментариев, дат и схем, а большие вложенные файлы трудно читать без просмотрщика.

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
2001 · Douglas Crockford
Конвертер JSON

XML переводят в JSON, когда данные из старой или корпоративной системы нужно передать в веб-приложение, скрипт или инструмент автоматизации: JSON нативно разбирается в JavaScript и напрямую соответствует словарям Python.

Возможности XML, которым нет места в JSON

Оба формата описывают деревья, но в XML есть то, чего никогда не было в JSON. Пространства имён, определённые W3C в 1999 году, позволяют смешивать в одном документе разные словари, например soap: и xsi:; в JSON они сохраняются лишь как часть имён ключей. Комментариям и инструкциям обработки некуда деваться, и они отбрасываются. Смешанное содержимое, то есть текст вперемешку с дочерними тегами, как в абзаце XHTML с выделенным жирным словом, допустимо в XML, но неудобно в JSON, поэтому документы такого типа лучше конвертировать в HTML или Markdown, а не в JSON.

Тоньше всего с порядком. XML сохраняет последовательность соседних элементов, и схема может на неё опираться; ключи объекта JSON по стандарту не упорядочены. Повторяющиеся элементы сохраняют порядок внутри своего массива, чего хватает для большинства реальных данных. Если XML представляет собой плоский список записей, которые нужны в таблице, а не в коде, XML в Excel сразу даст строки и столбцы, а XML в CSV создаст файл для импорта в базу данных.

Вопросы о конвертере XML в JSON

Почему один и тот же элемент в одном файле массив, а в другом — объект?

Конвертер видит только то, что есть в документе. Если в заказе три тега item, items станет массивом; если тег один, повторять нечего, и получится один объект. Код, который читает JSON, должен принимать обе формы или оборачивать одиночный объект в массив перед циклом.

Как атрибуты XML записываются в JSON?

Каждый атрибут становится ключом с @ перед именем, поэтому currency="EUR" превращается в "@currency": "EUR". Если у элемента есть и атрибуты, и текст, текст попадает в ключ #text рядом с ними. Такое соглашение не даёт атрибутам и дочерним элементам конфликтовать, когда у них одинаковые имена.

Превращаются ли числа из XML в числа JSON?

У XML нет собственных типов данных: 42 и "42" в теге выглядят одинаково. Поэтому значения выводятся строками, и почтовые индексы и идентификаторы вроде 007 сохраняются без потерь. Нужные поля переведите в числа после разбора в своём коде.

Что происходит с префиксами пространств имен, например soap:Envelope?

Префикс остаётся частью имени ключа: envelope отображается как soap:Envelope, а объявление пространства имён как ключ @xmlns:soap. Так элементы из разных словарей остаются различимыми; если вы работаете только с одним, уберите префиксы в коде.

Можно ли потом конвертировать JSON обратно в XML?

Да, через JSON в XML. При том же соглашении с @ и #text атрибуты возвращаются как атрибуты. Комментарии и исходные отступы не восстанавливаются, так как в JSON их не было.