OpenReplay Logo
12k
12k

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

Преобразуйте XML в JSON и обратно — обработка выполняется локально в вашем браузере, с поддержкой атрибутов, повторяющихся элементов, CDATA и смешанного содержимого.

Обрабатывается локально

Об этом инструменте

XML и JSON — два доминирующих текстовых формата для структурированных данных, но они отображаются в разные структуры: XML несёт элементы, атрибуты, смешанный текст и CDATA, тогда как JSON имеет объекты, массивы и типизированные примитивы. Этот конвертер разбирает XML собственным токенизатором (без DOMParser) и применяет предсказуемое сопоставление — атрибуты становятся ключами "@name", элементы, состоящие только из текста, становятся строковыми значениями, повторяющиеся соседние элементы объединяются в массивы, а элемент, который несёт одновременно атрибуты или дочерние элементы и текст, сохраняет этот текст под ключом "#text". CDATA читается как текст; комментарии и объявление XML отбрасываются. Направление JSON → XML применяет те же правила в обратном порядке, экранируя текст и значения атрибутов и используя отступ в два пробела.

Используйте его, чтобы передать устаревшую полезную нагрузку SOAP или RSS в API, принимающий только JSON, чтобы изучить плотную конфигурацию XML в виде навигируемого дерева объектов, или чтобы выполнить обратное преобразование документа и убедиться, что его структура сохраняется. Параметр «Автоматически определять тип значений» превращает полные строковые совпадения вроде "42", "true" и "null" в настоящие числа, булевы значения и null в JSON, чтобы код, использующий результат, не пришлось повторно разбирать строки — отключите его, когда вам нужно, чтобы каждый лист оставался строкой. В режиме JSON → XML задайте имя корневого элемента, используемое, когда JSON не является объектом с единственным ключом.

Оба преобразования выполняются полностью в вашем браузере — никакой XML или JSON никогда не отправляется на сервер.

Часто задаваемые вопросы

Как атрибуты XML представляются в выходных данных JSON?

Каждый атрибут становится ключом с префиксом "@" в объекте элемента — например, <book id="42"> становится {"book": {"@id": 42}}. При обратном преобразовании JSON в XML любой ключ с префиксом "@" снова превращается в атрибут.

Что происходит с повторяющимися элементами XML и смешанным текстовым содержимым?

Соседние элементы с одинаковым именем тега группируются в массив JSON. Когда элемент имеет атрибуты или дочерние элементы наряду с собственным текстом, этот текст сохраняется под ключом "#text", чтобы ничего не было потеряно.

Обрабатывает ли конвертер CDATA, комментарии и объявление XML?

Секции CDATA читаются как обычный текст и объединяются со значением элемента. Комментарии и объявление <?xml ... ?> отбрасываются, поскольку ни то, ни другое не несёт данных, которые чётко отображаются в JSON.