Преобразование JSON в XML
Вставьте JSON-документ и получите его XML-эквивалент с именем корневого элемента, которое вы выбрали, единым подходом к массивам (повторяющиеся элементы или обёртка), по желанию, с XML-декларацией и аккуратными отступами. Это особенно полезно, когда устаревшая система требует XML, а ваши исходные данные хранятся в формате JSON.
Как преобразовать JSON в XML
-
1
Вставьте JSON
Объект или массив на верхнем уровне. Вы зададите имя корневому элементу.
-
2
Назовите корень
В XML требуется один корневой элемент. По умолчанию используется `<root>`; задайте более осмысленное имя, например `<users>` или `<response>`.
-
3
Выберите стратегию для массива
«Повторяющиеся элементы» (каждый элемент массива становится соседним `<item>`) или «обёртка» (массив помещается внутрь именованного элемента-обёртки).
-
4
Скопируйте XML
По желанию, XML-декларация, правильные отступы и значения с экранированием сущностей для `<`, `>`, `&` и кавычек.
Пример: повторяющиеся элементы
Ввод:
{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }
Результат:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<name>Alice</name>
</users>
<users>
<name>Bob</name>
</users>
</root>
Пример: оболочка массива
Тот же входной набор данных с использованием стратегии «обёртывание массивов в <item>»:
<root>
<users>
<item>
<name>Alice</name>
</item>
<item>
<name>Bob</name>
</item>
</users>
</root>
Маппинг типов
| JSON | XML |
|---|---|
| строка | текстовое содержимое, экранированное в виде сущностей |
| целое / десятичное число | текстовое содержимое (без аннотации типа XML) |
| логическое значение | true / false в виде текста |
| null | пустой элемент (<foo/>) или опускается |
| массив | повторяющиеся элементы или обёртка с элементами |
| объект | вложенный элемент с дочерними элементами |
Атрибуты по сравнению с элементами
XML различает атрибуты (<user id="1">) и дочерние элементы (<user><id>1</id></user>). По умолчанию конвертер использует элементы, они не теряют данные при обратном преобразовании. Если ваш последующий XML требует атрибутов, используйте соглашение о префиксах ключей:
- Ключ JSON
@idпревращается в атрибут XMLid="..."у родительского элемента. - Ключ JSON
#textстановится текстовым содержимым родительского элемента.
Эти соглашения взяты из схем отображения BadgerFish и Parker, двух наиболее распространённых стандартов преобразования JSON в XML.
Правила экранирования
<-><>->>&->&"→"(в значениях атрибутов)'→'(по желанию)- Байты в кодировке UTF-8 сохраняются и объявляются в прологе XML.
Распространённые ошибки
- Массив JSON на корневом уровне. XML требует одного корневого элемента. Конвертер оборачивает массив в
<root>(или любое выбранное вами имя). - Числовые ключи. JSON
{"1": "a"}допустим, но имена элементов XML не могут начинаться с цифры. Конвертер добавляет перед цифрой подчёркивание (_1) или позволяет задать собственное отображение. - Смешанные массивы. Для
[1, "two", { "x": true }]нет однозначного отображения. Обычно это означает, что JSON нужно нормализовать перед преобразованием. - Огромные документы. XML многословен: JSON размером 10 МБ может стать XML размером 20–30 МБ. Для очень больших данных рассмотрите потоковое преобразование.
Часто задаваемые вопросы
Согласно спецификации, XML требует одного корневого элемента. Если ваш JSON является массивом или содержит несколько ключей верхнего уровня, конвертер оборачивает всё в корневой элемент, имя которого вы можете задать (по умолчанию, <root>).
Да. Используйте соглашение о префиксе @ в ключах JSON (например, "@id": 1); такие ключи становятся атрибутами, а остальные остаются дочерними элементами. Это соответствует отображению BadgerFish.
Два подхода: повторяющиеся соседние элементы (каждый элемент получает ключ родителя в качестве тега) или обёртка с элементами <item> внутри. Выберите тот вариант, который соответствует целевой XML-схеме.
Нет. Конвертер выводит XML-декларацию (<?xml version="1.0"?>), но не DOCTYPE. Для XML, которому нужна ссылка на DTD или XSD, добавьте её вручную после преобразования.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Шпаргалка по регулярным выражениям
Поисковый справочник регулярных выражений для JavaScript, PCRE2/PHP, Python re и .NET. Сравнивайте токены, синтаксис движков, якоря, группы, проверки и флаги.
Инструмент доступен на других языках
- JSON vers XML [FR]
- JSON till XML [SV]
- แปลง JSON เป็น XML [TH]
- JSON إلى XML [AR]
- JSON ke XML [ID]
- Chuyển đổi từ JSON sang XML [VI]
- JSON에서 XML로 [KO]
- JSON zu XML [DE]
- JSON a XML [ES]
- JSON naar XML [NL]
- JSON do XML [PL]
- JSONからXMLへ [JA]
- JSON para XML [PT]
- JSON'ten XML'e [TR]
- JSON 到 XML [ZH]
- JSON to XML [EN]
- JSON in XML [IT]