Как пользоваться
- Вставьте XML в поле XML. Сначала он проверяется, и ошибка показывается с указанием строки и столбца.
- Оставьте отмеченным Читать числа, true и false как значения, чтобы получить 12.5 как число, или снимите отметку, чтобы весь текст остался текстом.
- Выберите Отступы или Без переносов строк (сжатый) для самого короткого JSON.
- Скопируйте JSON или скачайте его как converted.json.
Правило соответствия по шагам
Корневой элемент становится единственным членом объекта JSON, поэтому корень catalog даёт член catalog. Атрибут становится членом, имя которого начинается с @, например @id. Текст элемента становится его значением, если у элемента больше ничего нет. Если же у него есть дочерние элементы, текст становится членом #text без пробельных символов по краям.
Дочерний элемент становится членом с его именем. Если одно имя встречается несколько раз, члены превращаются в массив в порядке документа. Элемент без атрибутов и без дочерних элементов становится null, если записан самозакрывающимся тегом (косая черта в конце тега), и пустой строкой, если записан парой открывающего и закрывающего тегов.
- Разделы CDATA считаются текстом, в точности как записаны, поэтому знак < внутри них остаётся знаком <.
- Комментарии и инструкции обработки опускаются, потому что в JSON для них нет места.
- Ссылки вроде & и A читаются, так что текст содержит символы, которые они обозначают.
Типизированные значения и что они меняют
В XML нет собственных чисел и логических значений: 12.5 в XML — это только текст. Если включено чтение типов, текст, который при обратной записи в JSON совпадает с числом, true или false, читается как это значение. Текст вроде 12.50 или 007 остаётся текстом, потому что число записало бы его иначе.
Список из одного элемента возвращается как сам элемент, а не как массив: XML не различает эти случаи. Имейте это в виду, если JSON будет читать программа, которая ждёт массив.
Пример: стандартный каталог
По умолчанию XML — это каталог с двумя книгами. У первой книги есть атрибут id, а её элементы title, price и inStock становятся ключами. У второй книги нет элемента inStock, а её пустой элемент price становится null.
В JSON один член — catalog, а его ключ book — массив из двух объектов. Счётчик показывает 8 элементов: каталог, две книги и их дочерние элементы.
Частые вопросы
Почему число выводится как текст?
Текст, который число JSON не записало бы обратно точно, остаётся текстом: 12.50 сохраняет ноль на конце, а 007 сохраняет ведущие нули. Выключите чтение типов, чтобы все значения оставались текстом.
Почему один элемент выводится объектом, а не массивом?
Массив создаётся, только если одно и то же имя встречается два раза или больше среди дочерних элементов одного элемента. Одиночный элемент выводится своим значением, что для XML обычно.
Что происходит с комментариями и инструкциями обработки?
Они опускаются. В JSON для комментария нет места, поэтому преобразование читает только данные. Сохраните исходный XML, если комментарии важны.
Почему преобразование указывает строку и столбец?
XML должен быть правильно построенным, прежде чем его можно прочитать. Строка и столбец показывают первое место, где документ нарушает правила XML, например закрывающий тег, который не совпадает с открывающим.
Отправляется ли мой XML на сервер?
Нет. Преобразование выполняется в вашем браузере. Вставленный текст не отправляется на наш сервер и там не сохраняется.
Источники
- W3C: Extensible Markup Language (XML) 1.0, Fifth Edition (на английском)
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format (на английском)
Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..