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

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

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

Перетащите файлы сюда

.json, .ndjson, .txt · до 300 МБ

Больше настроек

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

  1. 1

    Перетащите файл JSON

    Добавьте один файл или до двадцати. Текст читается и парсится прямо в этой вкладке браузера, а при синтаксической ошибке показываются точные строка и столбец.

  2. 2

    Задайте имена корневого и элементного тегов

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

  3. 3

    Конвертируйте и скачайте XML

    Нажмите кнопку, чтобы получить объявленный, отформатированный документ. Пакет файлов возвращается одним ZIP-архивом.

Ключи, которые XML не принимает как имена тегов

К ключам объектов JSON почти нет требований, а к именам элементов XML они есть. «2024 sales», «order id» и пустая строка — валидные ключи, но тегами они быть не могут. Если выкинуть такие поля без предупреждения, данные потеряются. Поэтому недопустимые символы заменяются на подчеркивания, имя, начинающееся с цифры, получает приставку n, а полный список «как было и как стало» возвращается вместе с результатом.

Символы, которые XML запрещает полностью

Экранирование решает проблему амперсандов и угловых скобок. С управляющими символами ниже 0x20 так не выйдет: XML 1.0 отвергает их в любом виде, и не спасает ни сущность, ни блок CDATA. Один случайный 0x0B, попавший из ячейки таблицы, сделает весь документ непригодным к разбору, поэтому такие байты вырезаются и подсчитываются, а счетчик показывается рядом с результатом.

Атрибуты, текстовые узлы и null

Ключ, начинающийся с префикса атрибута (по умолчанию @_), превращается в атрибут родительского элемента вместо дочернего тега, а специальный текстовый ключ хранит собственный текст элемента. В JSON есть значение null, а в XML прямого аналога нет, поэтому вариант выбираете вы: пустой элемент, элемент с пометкой xsi:nil или отсутствие элемента.

Файл не покидает эту вкладку

Чтение файла, парсинг JSON, исправление имен и сериализация XML происходят в вашем браузере, в отдельном потоке, с помощью кода, загруженного вместе со страницей. Нет ни загрузки на сервер, ни очереди обработки, ни аккаунта. Закройте вкладку — и файл исчезнет, потому что его копия нигде больше не создается.

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

Как задать имя корневого элемента?

Имя корня — первое поле на странице, по умолчанию root. Оно должно быть валидным именем XML: буквы, цифры, точки, дефисы и подчеркивания, но не начинаться с цифры и с зарезервированного префикса xml. Если имя неверное, вы сразу увидите подсказку и предложенное исправление.

Как превратить ключ JSON в атрибут XML?

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

Что происходит с ключами, которые не подходят для имени тега XML?

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

Что происходит со значениями null?

Есть три варианта. Пустой элемент сохраняет поле видимым в документе. xsi:nil помечает его как явный null, как ожидают потребители со схемой, и объявляет пространство имен в корне. Пропуск полностью убирает поле. По умолчанию используются пустые элементы, потому что они лучше всего переживают обратную конвертацию.

Когда нужен CDATA?

Заметно реже, чем кажется, потому что обычное экранирование всегда корректно. CDATA обычно нужен для удобочитаемости, если значение содержит много текста, похожего на разметку. Включите его — и строки длиной больше 200 символов или со знаками < и & будут записываться в блок CDATA. Встречающийся внутри такой строки буквальный ]]> разбивается между двумя блоками, чтобы вывод оставался валидным.

Сохраняется ли порядок ключей?

Да. Элементы записываются в том порядке, в каком ключи идут в исходном JSON, а элементы массивов сохраняют порядок индексов. Атрибуты выводятся перед дочерними элементами, как того требует XML, но между собой также следуют порядку исходных ключей, так что вывод остается достаточно стабильным для сравнения между запусками.

Загружается ли мой файл куда-то?

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

Похожие инструменты

XML в JSONПреобразуйте XML в JSON с атрибутами, CDATA и пространствами имен так, как вам удобно, а ошибки синтаксиса указывают точную строку.CSV в XMLОберните таблицу CSV в корректный XML: свои имена корневого и строкового тегов, столбцы как элементы или атрибуты, заголовки приведены к допустимым именам тегов.Форматер XMLСделайте XML читабельным с отступами, сожмите его в одну строку или только проверьте — комментарии, CDATA и порядок атрибутов сохранятся как есть.Форматер JSONРасставьте отступы, минифицируйте или только проверьте JSON-файл. Ошибки укажем по строке и столбцу, скрытые проблемы назовем прямо.JSON в CSVПревратите ответ API или экспорт NDJSON в таблицу, где каждое поле из каждой записи становится отдельным столбцом.XML в ExcelПреобразуйте XML-ленты и выгрузки из систем в таблицу: повторяющийся элемент записи ищется автоматически, атрибуты становятся отдельными столбцами.