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

Направление конвертации

Конвертация JSON в XML

Преобразование JSON → XML на сервере, без установки программ

.json.xml

.json.xml
  1. Загрузить
  2. Выбрать формат
  3. Скачать

Загрузка файлов

Область приёма файла

или

Файлы JSON. До 5 МБ, до 20 файлов за раз. Изображение можно вставить из буфера обмена: Ctrl+V.

Объект становится деревом тегов внутри корневого элемента <root>, элементы массивов — тегами <item>. В XML все значения текстовые, поэтому числа и true/false потеряют тип, а ключи с пробелами и цифрами в начале приводятся к допустимым именам тегов.

Исходники и результаты хранятся 60 минут, затем стираются фоновым уборщиком. Предельный размер файла — 5 МБ, срок хранения — час.

JSON и XML: характеристики

Характеристики форматов JSON и XML рядом
Характеристика.jsonJSON.xmlXML
Полное названиеJavaScript Object NotationExtensible Markup Language
РазработчикДуглас КрокфордW3C
Год появления20011998
Расширение.json.xml
MIME-типыapplication/json, text/json, application/x-jsonapplication/xml, text/xml
СодержимоеТекстовоеТекстовое
Несколько страниц в файлеНетНет
Типы данныхСтрока, число, логическое, null, массив, объектнет данных
СтандартRFC 8259 / ECMA-404нет данных
КодировкаUTF-8Объявляется в прологе документа
КомментарииНе поддерживаютсянет данных
СхемаОпционально, через JSON Schemaнет данных
Чем открытьVS Code, Notepad++, Sublime Text, JetBrains IDE, Google Chrome, jqVS Code, Notepad++, XMLSpy, JetBrains IDE, Mozilla Firefox, xmllint
СпецификацияОписание форматаОписание формата
Схемынет данныхXSD, DTD, RELAX NG
Пространства имённет данныхПоддерживаются
Обработканет данныхXPath, XSLT, XQuery
Многословностьнет данныхВыше, чем у JSON

Преобразование JSON → XML

Обратная задача возникает при обмене с системами, принимающими только XML: учётные контуры, банковские и государственные шлюзы, интеграции прошлых лет. Документ оборачивается в корневой элемент root, ключи становятся именами элементов, элементы массива — повторяющимися узлами item, а ключи с префиксом @ записываются атрибутами.

Имена элементов проходят проверку на допустимость. Спецификация XML разрешает начинать имя буквой или подчёркиванием, но не цифрой, и запрещает пробелы, поэтому ключ «дата заказа» превращается в дата_заказа, а ключ 2024 получает префикс. Кириллица в именах допустима стандартом и остаётся как есть. Символы амперсанда и угловых скобок в значениях экранируются автоматически, документ начинается с объявления в кодировке UTF-8.

Главное отличие целевой модели: в XML нет типов. Число 30 и строка «30» записываются одинаково, true становится словом, null — пустым элементом. Типы восстанавливает принимающая сторона по своей схеме, поэтому маршрут годится для передачи данных, но не для хранения их вместе с типами. Обратное преобразование вернёт документ, где все значения окажутся строками.

Есть и жёсткое ограничение на состав символов: XML 1.0 не допускает управляющих кодов ниже 0x20, кроме табуляции, перевода строки и возврата каретки. Строка с нулевым байтом или экранированной последовательностью такого рода корректного документа не даст. Отступ по умолчанию — два пробела; отключение форматирования сокращает объём на четверть-треть. На обработку отводится 120 секунд.

Порядок преобразования JSON → XML

  1. Шаг 1

    Подготовка ключей

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

  2. Шаг 2

    Загрузка данных

    За задание принимается несколько файлов. Ограничение по размеру действует на каждый из них отдельно.

  3. Шаг 3

    Форматирование

    Отступы нужны, если документ будут читать люди или отлаживать по строкам. Для отправки в интеграцию их отключают.

  4. Шаг 4

    Проверка документа

    Откройте результат в браузере: он отрисует дерево элементов и укажет строку с ошибкой, если структура окажется некорректной.

Вопросы по работе сервиса

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

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

Отчего числа превратились в текст?

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

Задаются ли имена корневого элемента и элементов массива?

Нет, корень называется root, элементы массива — item. Если интеграция требует конкретных имён, переименуйте узлы после конвертации или соберите документ по шаблону на своей стороне: автоматическое преобразование не знает вашей схемы.

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

Они приводятся к допустимой форме: пробелы заменяются, имена, начинающиеся с цифры, получают префикс. Кириллица правилами разрешена и сохраняется. Управляющие символы ниже 0x20 в значениях недопустимы стандартом — такой документ не будет корректным ни при каком экранировании.

Подойдёт ли результат для проверки по схеме XSD?

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