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

Конвертер файлов

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

Конвертируйте XML в JSON онлайн бесплатно

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

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

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

или

Файлы 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. Шаг 1

    Загрузите XML

    Перетащите выгрузку в область загрузки или выберите файл на диске. За одно задание принимается несколько файлов; предел размера каждого указан рядом.

  2. Шаг 2

    Решите, нужны ли отступы

    С отступами результат удобно читать и просматривать глазами, без них файл получается компактнее — так лучше для передачи по сети и хранения.

  3. Шаг 3

    Запустите конвертацию

    Нажмите «Конвертировать». Выгрузка на десятки тысяч элементов обрабатывается за несколько секунд.

  4. Шаг 4

    Проверьте структуру результата

    Посмотрите, как легли атрибуты (ключи с @) и текстовые узлы (#text), и убедитесь, что повторяющиеся теги собрались в массивы.

Что обычно спрашивают

Почему у некоторых ключей появился символ @?

Так помечаются атрибуты XML. Без префикса их нельзя было бы отличить от дочерних тегов: и то, и другое в JSON превращается в обычные поля объекта. Значение атрибута при этом не меняется.

Что означает поле #text?

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

Можно ли получить обратно тот же самый XML?

Точную копию — нет. Комментарии, CDATA и форматирование теряются, а массив из одного элемента в JSON неотличим от одиночного тега. Направление JSON → XML даст корректный, но другой документ.

Как обрабатываются повторяющиеся теги?

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

Подойдёт ли конвертер для больших выгрузок?

Да, в пределах указанного в форме размера файла и двух минут обработки. Этого достаточно для обычных выгрузок из учётных систем, прайс-листов и лент товаров.

Чем различаются XML и JSON

.xml

Что такое XML

Универсальный язык разметки для описания структурированных данных со строгой проверкой по схеме.

Характеристики формата 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
СпецификацияОписание формата
Всё о формате XML
.json

Что такое JSON

Текстовый формат структурированных данных — стандарт де-факто для веб-API и настроек.

Характеристики формата JSON
Полное название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
СпецификацияОписание формата
Всё о формате JSON