Как пользоваться: XML в JSON
- Вставьте XML или откройте файл
.xml. - Выберите, как обрабатывать атрибуты, типы и пустые элементы.
- Укажите имена элементов, которые должны всегда быть массивами, даже если встречаются один раз.
- Скопируйте или скачайте JSON.
Как XML соотносится с JSON
| XML | JSON |
|---|---|
<name>Ada</name> | "name": "Ada" |
<price currency="USD">9.5</price> | "price": {"@currency": "USD", "#text": 9.5} |
Повторяющиеся элементы <tag> | "tag": ["a", "b"] |
<![CDATA[ … ]]> | Обычная строка |
<empty/> | "" или null |
Проблема с массивами
В XML нет массивов, есть только повторяющиеся элементы. Конвертер не может знать, что <item> — это список, если он встречается только один раз, поэтому структура JSON зависит от данных: один элемент даёт объект, два — массив. Из-за этого код, который ожидает список, ломается. Чтобы получить стабильный результат, перечислите такие имена элементов в поле «Всегда массивы для».
Типы
Всё содержимое XML является текстом. Если включена опция «Определять числа и логические значения», значения вроде 42, 9.5 и true становятся числами и логическими значениями JSON. Длинные числа (более 15 цифр) и значения с ведущими нулями остаются строками, чтобы не потерять точность.
Проверка
XML разбирается встроенным XML-парсером вашего браузера, поэтому некорректные данные — например, незакрытый тег или неэкранированный & — сообщаются об ошибке, а не превращаются в битый JSON. Имена с пространствами имён (g:price) сохраняют префикс. Изучить результат можно в просмотрщике JSON, а вернуть обратно в XML — с помощью конвертера JSON в XML.
Также ищут как: xml2json, soap в json, rss в json.
Инструменты, которые хорошо сочетаются с XML в JSON
- XML форматтер — Превратите сжатый или неаккуратный XML в чистую разметку с отступами и проверьте, что он корректно сформирован.
- JSON форматтер — Вставьте JSON, чтобы отформатировать, минифицировать или проверить его.
- YAML в JSON — Вставьте YAML — файл Compose, манифест Kubernetes или конфиг CI — и получите отформатированный JSON.
- Валидатор JSON Schema — Вставьте схему и JSON, чтобы увидеть, какие значения нарушают какие правила, или сгенерируйте стартовую схему по примеру данных.
Часто задаваемые вопросы
Почему один элемент превращается в объект, а несколько — в массив?
Что происходит с атрибутами?
Поддерживаются ли пространства имён?
atom:link, сохраняются как ключи; объявления пространств имён появляются как атрибуты @xmlns.