Перейти к содержанию
TextArray
100% локально

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

Преобразуйте XML в эквивалентный JSON с префиксом атрибутов и повторяющимися тегами в виде массивов.

Входные данные
Выходные данные

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

XML и JSON описывают структурированные данные, но инструменты вокруг вас редко используют оба языка. Старый SOAP API, канал RSS, макет Android, файл конфигурации или экспорт данных предоставляют вам XML; ваш скрипт, ваша база данных или ваш интерфейс требуют JSON. Этот инструмент выполняет преобразование между ними с помощью настоящего синтаксического анализатора, а не хака регулярных выражений, который правильно обрабатывает неудобные части XML: вложенные элементы, атрибуты, смешанный контент, самозакрывающиеся теги, комментарии, разделы CDATA, декларацию XML и DOCTYPE.

Отображение соответствует широко используемому соглашению. Атрибуты элемента становятся ключами с префиксом @ (настраиваемые), поэтому <user id="7"> дает "@id": "7". Дочерние элементы вложены как объекты; когда тег повторяется — три элемента <item> подряд — они сворачиваются в один массив, а это именно то, что вам нужно для списков. Элемент, содержащий только текст, становится простой строкой; тот, который имеет и текст, и атрибуты, сохраняет свой текст под ключом #text. Сущности типа & и числовые ссылки типа A декодируются, а содержимое CDATA воспринимается буквально.

Поскольку это настоящий анализатор рекурсивного спуска, он проверяет при чтении: несоответствующий закрывающий тег, незавершенный комментарий или случайное содержимое после того, как корень выдает явную ошибку с номером строки, а не незаметно искажает вывод. Выберите отступ в два или четыре пробела, чтобы результат был читаемым, или уменьшите до одной строки для встраивания.

Все работает локально в вашем браузере — ваши данные никогда не покидают ваше устройство, что важно для экспорта XML, который часто содержит записи и идентификаторы.

FAQ

Как атрибуты XML представлены в JSON?
По умолчанию ключи имеют префикс @ (префикс можно изменить). Таким образом, <book lang="en"> становится { "book": { "@lang": "en" } }. Это соглашение используется такими библиотеками, как xml-js и bardgerfish, поэтому выходные данные попадают в большинство цепочек инструментов.
Что происходит с повторяющимися тегами?
Они становятся массивом. Три дочерних элемента <item> сворачиваются в «item»: [ … ], что и нужно для списка. Тег, который появляется один раз, остается одним значением — обратите внимание, что это означает документ с одним элементом, а другой с несколькими сопоставлениями с разными формами, что присуще XML → JSON.
Обрабатывает ли он смешанный контент и CDATA?
Да. Элемент, имеющий как текст, так и дочерние элементы (или атрибуты), хранит свой текст под ключом #text. Разделы CDATA воспринимаются буквально, поэтому их разметка <raw> и символы & сохраняются без анализа. Комментарии и инструкции по обработке пропускаются.
Почему он сообщил об ошибке вместо преобразования?
Это проверяющий анализатор: несоответствующий закрывающий тег, атрибут без кавычек, незавершенный комментарий или содержимое после корневого элемента — все это останавливает преобразование с помощью сообщения с номером строки. Это сделано намеренно: неправильное, но тихое преобразование хуже явной ошибки.
Загружен ли где-нибудь мой XML?
Нет. Анализ и преобразование выполняются полностью в вашем браузере, и ваши данные никогда не покидают ваше устройство.