Конвертер файлов
Конвертер XML в JSON
Конвертируйте XML в JSON онлайн бесплатно
- Загрузить
- Выбрать формат
- Скачать
Загрузка файлов
Перетащите файлы сюда
или
Файлы XML. До 5 МБ, до 20 файлов за раз. Изображение можно вставить из буфера обмена: Ctrl+V.
Дерево тегов превращается в объекты, атрибуты получают префикс @, а текст внутри тега с атрибутами — поле #text. Повторяющиеся теги собираются в массив. Комментарии и инструкции обработки отбрасываются.
Загруженные файлы и результаты конвертации удаляются с сервера через час. Предельный размер файла — 5 МБ, срок хранения — час.
Зачем переводить XML в JSON
XML и JSON описывают одни и те же данные разным синтаксисом: в XML есть теги, атрибуты и текстовые узлы, в JSON — только объекты, массивы и значения. Точного соответствия между ними нет, поэтому конвертер работает по понятным правилам: атрибуты получают префикс @, а текст внутри тега с атрибутами кладётся в поле #text. Результат удобно читать и легко разбирать в коде.
Правила простые. Дерево тегов превращается во вложенные объекты: <user id="7"><name>Иван</name></user> даёт {"user": {"@id": "7", "name": "Иван"}}. Несколько одинаковых тегов подряд собираются в массив, поэтому список товаров или заказов сразу получается массивом объектов. Пустой тег превращается в пустую строку, а числа и значения true/false распознаются автоматически — кроме случаев, когда запись начинается с нуля и это явно код, а не число. Пространства имён остаются частью имени ключа.
Часть содержимого при разборе теряется намеренно: комментарии, инструкции обработки и объявление DOCTYPE отбрасываются — в JSON для них попросту нет места. Разделы CDATA становятся обычным текстом: экранирование в JSON устроено иначе, и специальные символы сохранятся сами по себе. Отступы и переносы строк между тегами тоже не переносятся, они относятся к оформлению файла, а не к данным.
Из-за этого обратное преобразование не вернёт исходный XML байт в байт, и это не недоработка, а свойство самих форматов. В JSON нельзя отличить массив из одного элемента от одиночного тега, атрибут после разбора выглядит почти как дочерний элемент (его выдаёт только префикс @), смешанное содержимое — текст вперемешку с тегами внутри одного узла — уплощается, а порядок разных ключей формально не гарантируется. Если документ должен проходить проверку по конкретной XSD-схеме, собирайте его по шаблону, а не автоматической конвертацией туда и обратно.
Как конвертировать XML в JSON
Шаг 1
Загрузите XML
Перетащите выгрузку в область загрузки или выберите файл на диске. За одно задание принимается несколько файлов; предел размера каждого указан рядом.
Шаг 2
Решите, нужны ли отступы
С отступами результат удобно читать и просматривать глазами, без них файл получается компактнее — так лучше для передачи по сети и хранения.
Шаг 3
Запустите конвертацию
Нажмите «Конвертировать». Выгрузка на десятки тысяч элементов обрабатывается за несколько секунд.
Шаг 4
Проверьте структуру результата
Посмотрите, как легли атрибуты (ключи с @) и текстовые узлы (#text), и убедитесь, что повторяющиеся теги собрались в массивы.
Что обычно спрашивают
Почему у некоторых ключей появился символ @?
Так помечаются атрибуты XML. Без префикса их нельзя было бы отличить от дочерних тегов: и то, и другое в JSON превращается в обычные поля объекта. Значение атрибута при этом не меняется.
Что означает поле #text?
Это текст внутри тега, у которого есть атрибуты или дочерние элементы. Если тег содержит только текст и ничего больше, значение становится строкой напрямую, без дополнительного поля.
Можно ли получить обратно тот же самый XML?
Точную копию — нет. Комментарии, CDATA и форматирование теряются, а массив из одного элемента в JSON неотличим от одиночного тега. Направление JSON → XML даст корректный, но другой документ.
Как обрабатываются повторяющиеся теги?
Соседние одинаковые теги собираются в массив, поэтому список из XML сразу становится массивом JSON. Если такой тег в файле встретился один раз, он останется одиночным объектом — это стоит учитывать в коде.
Подойдёт ли конвертер для больших выгрузок?
Да, в пределах указанного в форме размера файла и двух минут обработки. Этого достаточно для обычных выгрузок из учётных систем, прайс-листов и лент товаров.
Чем различаются XML и JSON
Что такое XML
Универсальный язык разметки для описания структурированных данных со строгой проверкой по схеме.
| Полное название | Extensible Markup Language |
|---|---|
| Разработчик | W3C |
| Год появления | 1998 |
| Расширение | .xml |
| MIME-типы | application/xml, text/xml |
| Содержимое | Текстовое |
| Несколько страниц в файле | Нет |
| Схемы | XSD, DTD, RELAX NG |
| Пространства имён | Поддерживаются |
| Обработка | XPath, XSLT, XQuery |
| Кодировка | Объявляется в прологе документа |
| Многословность | Выше, чем у JSON |
| Чем открыть | VS Code, Notepad++, XMLSpy, JetBrains IDE, Mozilla Firefox, xmllint |
| Спецификация | Описание формата |
Что такое JSON
Текстовый формат структурированных данных — стандарт де-факто для веб-API и настроек.
| Полное название | JavaScript Object Notation |
|---|---|
| Разработчик | Дуглас Крокфорд |
| Год появления | 2001 |
| Расширение | .json |
| MIME-типы | application/json, text/json, application/x-json |
| Содержимое | Текстовое |
| Несколько страниц в файле | Нет |
| Типы данных | Строка, число, логическое, null, массив, объект |
| Стандарт | RFC 8259 / ECMA-404 |
| Кодировка | UTF-8 |
| Комментарии | Не поддерживаются |
| Схема | Опционально, через JSON Schema |
| Чем открыть | VS Code, Notepad++, Sublime Text, JetBrains IDE, Google Chrome, jq |
| Спецификация | Описание формата |