Перевести файл
XML в JSON: перевести онлайн
Загрузите файл — через минуту получите JSON
- Загрузить
- Выбрать формат
- Скачать
Загрузка файлов
Положите файл сюда
или
Файлы XML. До 5 МБ, до 20 файлов за раз. Изображение можно вставить из буфера обмена: Ctrl+V.
Дерево тегов превращается в объекты, атрибуты получают префикс @, а текст внутри тега с атрибутами — поле #text. Повторяющиеся теги собираются в массив. Комментарии и инструкции обработки отбрасываются.
Через час на сервере не останется ни присланного файла, ни того, что из него получилось. Предельный размер файла — 5 МБ, срок хранения — час.
Что даёт перевод XML в JSON
Прайс-лист от поставщика, выгрузка из учётной программы или лента товаров нередко приходят файлом XML — с угловыми скобками и тегами. Сервис, куда эти данные нужно загрузить, обычно хочет их в другом виде. Мы переписываем то же самое понятнее, сохраняя всю вложенность: где были подчинённые сведения, там они и останутся.
Как перевести XML в JSON по шагам
Шаг 1
Сохраните выгрузку
Скачайте файл от поставщика или из программы. Открывать и править его перед отправкой не нужно.
Шаг 2
Отправьте его нам
Перетащите файл в поле загрузки. Несколько выгрузок обрабатываются одним заданием, предел размера действует на каждую отдельно.
Шаг 3
Решите, нужны ли отступы
С отступами результат удобно читать глазами, без них файл получается компактнее — так лучше, если он сразу уходит в другой сервис.
Шаг 4
Посмотрите на структуру
Откройте результат и проверьте, что повторяющиеся позиции собрались в список, а вложенные сведения остались вложенными.
Правила перевода стоит знать, чтобы потом не удивляться. Дерево тегов превращается во вложенные записи. Одинаковые теги подряд — скажем, десять товаров — собираются в список, поэтому прайс сразу получается перечнем позиций. Дополнительные пометки, которые в исходном файле записаны прямо внутри тега, помечаются в результате значком «собака» — так их видно и не спутать с обычными полями.
Часть содержимого отбрасывается намеренно. Замечания, оставленные для людей, служебные строки и заголовок документа не переезжают — в новом виде для них нет места. Отступы и переносы строк между тегами тоже не переносятся: они относятся к оформлению файла, а не к данным. Само содержимое при этом сохраняется полностью, ни одно значение не теряется.
Из этого следует важное: обратно точь-в-точь тот же файл получить не выйдет, и это не недоработка, а свойство самих способов записи. Список из одной позиции невозможно отличить от одиночной записи, а пометка внутри тега после перевода выглядит почти как обычное поле. Если принимающая сторона проверяет файл по строгому образцу, собирайте его по этому образцу, а не переводом туда и обратно.
Что за форматы: XML и JSON
Что такое XML
Универсальный язык разметки для описания структурированных данных со строгой проверкой по схеме.
| Полное название | Extensible Markup Language |
|---|---|
| Разработчик | W3C |
| Год появления | 1998 |
| Расширение | .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 |
| Несколько страниц в файле | Нет |
| Типы данных | Строка, число, логическое, null, массив, объект |
| Стандарт | RFC 8259 / ECMA-404 |
| Кодировка | UTF-8 |
| Комментарии | Не поддерживаются |
| Схема | Опционально, через JSON Schema |
| Чем открыть | VS Code, Notepad++, Sublime Text, JetBrains IDE, Google Chrome, jq |
Частые вопросы
Почему у некоторых полей появился значок «собака»?
Так помечены пометки, которые в исходном файле записаны прямо внутри тега, рядом с его названием. Без этого значка их нельзя было бы отличить от обычных полей. Само значение при этом не меняется.
Можно ли получить обратно точно такой же файл?
Точную копию — нет. Замечания и служебные строки теряются, а список из одной позиции неотличим от одиночной записи. Обратное направление на сайте есть, но оно даёт правильный файл, а не побайтово тот же самый.
Как обрабатываются одинаковые теги?
Соседние одинаковые теги собираются в список, поэтому перечень товаров или заказов сразу становится перечнем. Если такой тег в файле встретился ровно один раз, он останется одиночной записью — это стоит учитывать тем, кто будет читать файл программой.
Подойдёт ли это для большой выгрузки и сколько ждать?
Обычный прайс-лист или лента товаров обрабатываются за несколько секунд. Предел размера указан под полем загрузки, и его хватает на выгрузки из учётных программ. Через час и исходный файл, и результат исчезают с сервера.
Рядом спрашивают и об этом
Обратное направлениеJSON в XMLЧто ещё можно сделать с файлом XML
Все конвертеры XMLИз чего ещё получается JSON
Все конвертеры JSONКуда девается ваш файл
- Через час его не остаётся
- И присланный файл, и то, что из него получилось, лежат на сервере час, а потом стираются. Это происходит само, по расписанию. Если ждать не хочется, рядом со ссылкой на готовый файл есть кнопка, которая убирает всё сразу.
- Ссылку нельзя подобрать
- Адрес готового файла состоит из длинного случайного набора символов. Перебрать такие адреса и наткнуться на чужой файл невозможно, а нигде на сайте они не перечисляются. Ссылка работает только тот час, пока файл жив.
- Есть предел по размеру
- Слишком большой файл сервер не примет — сколько именно можно, написано прямо под полем загрузки, и у видео этот предел ниже, чем у фотографий. Ограничение стоит не ради платной подписки: одно тяжёлое задание не должно занимать очередь целиком.