Направление конвертации
Конвертация JSON в XML
Преобразование JSON → XML на сервере, без установки программ
- Загрузить
- Выбрать формат
- Скачать
Загрузка файлов
Область приёма файла
или
Файлы JSON. До 5 МБ, до 20 файлов за раз. Изображение можно вставить из буфера обмена: Ctrl+V.
Объект становится деревом тегов внутри корневого элемента <root>, элементы массивов — тегами <item>. В XML все значения текстовые, поэтому числа и true/false потеряют тип, а ключи с пробелами и цифрами в начале приводятся к допустимым именам тегов.
Исходники и результаты хранятся 60 минут, затем стираются фоновым уборщиком. Предельный размер файла — 5 МБ, срок хранения — час.
JSON и XML: характеристики
| Характеристика | .jsonJSON | .xmlXML |
|---|---|---|
| Полное название | JavaScript Object Notation | Extensible Markup Language |
| Разработчик | Дуглас Крокфорд | W3C |
| Год появления | 2001 | 1998 |
| Расширение | .json | .xml |
| MIME-типы | application/json, text/json, application/x-json | application/xml, text/xml |
| Содержимое | Текстовое | Текстовое |
| Несколько страниц в файле | Нет | Нет |
| Типы данных | Строка, число, логическое, null, массив, объект | нет данных |
| Стандарт | RFC 8259 / ECMA-404 | нет данных |
| Кодировка | UTF-8 | Объявляется в прологе документа |
| Комментарии | Не поддерживаются | нет данных |
| Схема | Опционально, через JSON Schema | нет данных |
| Чем открыть | VS Code, Notepad++, Sublime Text, JetBrains IDE, Google Chrome, jq | VS 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
Подготовка ключей
Переименуйте поля, которые должны стать атрибутами, добавив префикс @. Остальные ключи станут вложенными элементами.
Шаг 2
Загрузка данных
За задание принимается несколько файлов. Ограничение по размеру действует на каждый из них отдельно.
Шаг 3
Форматирование
Отступы нужны, если документ будут читать люди или отлаживать по строкам. Для отправки в интеграцию их отключают.
Шаг 4
Проверка документа
Откройте результат в браузере: он отрисует дерево элементов и укажет строку с ошибкой, если структура окажется некорректной.
Вопросы по работе сервиса
Как заставить поле стать атрибутом?
Добавьте к именам нужных ключей префикс @ — такие поля записываются атрибутами родительского элемента. Правило симметрично разбору XML: документ, полученный встречным направлением, собирается обратно с сохранением атрибутов.
Отчего числа превратились в текст?
В XML содержимое элемента — всегда текст, типов в нём не предусмотрено. Число, строка и логическое значение записываются одинаково, а различает их принимающая система по схеме документа. Для хранения данных вместе с типами используйте исходный формат.
Задаются ли имена корневого элемента и элементов массива?
Нет, корень называется root, элементы массива — item. Если интеграция требует конкретных имён, переименуйте узлы после конвертации или соберите документ по шаблону на своей стороне: автоматическое преобразование не знает вашей схемы.
Что происходит с ключами, недопустимыми в XML?
Они приводятся к допустимой форме: пробелы заменяются, имена, начинающиеся с цифры, получают префикс. Кириллица правилами разрешена и сохраняется. Управляющие символы ниже 0x20 в значениях недопустимы стандартом — такой документ не будет корректным ни при каком экранировании.
Подойдёт ли результат для проверки по схеме XSD?
Совпадение случайно и маловероятно. Схема задаёт конкретные имена элементов, порядок, обязательность и пространство имён, а преобразование выводит структуру из ключей исходного документа. Для строгого формата понадобится шаблон или преобразование XSLT на стороне интеграции.