От XML к JSON
XML и JSON моделируют данные по-разному: в XML есть атрибуты и смешанное содержимое, в JSON, объекты и массивы. Для преобразования без потерь нужно соглашение. Этот инструмент предлагает три: компактный (удаляет атрибуты), Badgerfish (атрибуты, под @key, текст, под $) и литеральный (каждый узел XML становится объектом JSON с полной точностью). Выберите тот, который подходит для вашего потребителя JSON.
Как преобразовать XML в JSON
-
1
Вставьте XML
Любой корректно сформированный XML. Пространства имён сохраняются.
-
2
Выберите стиль преобразования
Компактный, Badgerfish или литеральный (без потерь).
-
3
Обработка массивов
Заставьте определённые элементы всегда быть массивами (настраивается).
-
4
Скопируйте вывод JSON
С отступами или минифицированный, на ваш выбор.
Сравнение трёх стилей
Ввод:
<book id="1" lang="en">
<title>1984</title>
<author>Orwell</author>
</book>
Компактный (удаляет атрибуты):
{
"book": {
"title": "1984",
"author": "Orwell"
}
}
Badgerfish (атрибуты, под @, текст, под $):
{
"book": {
"@id": "1",
"@lang": "en",
"title": { "$": "1984" },
"author": { "$": "Orwell" }
}
}
Литеральный / похожий на JsonML (с полной точностью):
{
"book": {
"@attributes": { "id": "1", "lang": "en" },
"title": "1984",
"author": "Orwell"
}
}
Принудительные массивы
В XML нет способа сказать «это список из одного элемента». Последовательность из одного элемента выглядит точно так же, как скаляр:
<items>
<item>A</item>
</items>
Это может быть сериализовано как {"item": "A"} или как {"item": ["A"]}. Конвертер позволяет помечать имена элементов (через XPath) как всегда-массивы, чтобы ваш нижестоящий потребитель JSON получал согласованные типы.
Смешанное содержимое
Смешанное содержимое, текст, переплетённый с дочерними элементами, это единственное место, где любое преобразование XML в JSON теряет информацию:
<p>Hello <em>world</em>!</p>
Большинство стилей либо удаляют текст, либо схлопывают его. Литеральный стиль сохраняет порядок с помощью массива:
{
"p": {
"@content": ["Hello ", { "em": "world" }, "!"]
}
}
Вывод типов
По умолчанию значения являются строками. Включите опцию «разбор чисел/булевых значений», и конвертер приведёт 42, 3.14, true и false к соответствующим типам JSON. Будьте внимательны: при включённом приведении типов атрибут XML id="007" станет 7, чего вы, скорее всего, не хотите.
Когда что выбирать
- Компактный: для читаемого человеком JSON, где атрибуты, это шум.
- Badgerfish: когда вам нужны атрибуты и текст на той же глубине, что и дочерние элементы.
- Литеральный: когда нужно без потерь преобразовывать обратно в XML.
Часто задаваемые вопросы
Если элемент встречается один раз, конвертер по умолчанию делает его объектом; если два раза или больше, массивом. Используйте опцию принудительного массива, чтобы сделать вывод единообразным, если ваш потребитель ожидает одну форму.
Префиксы пространств имён сохраняются в ключах (ns:title), если только вы не включите опцию «удалить пространства имён». Сами объявления превращаются в атрибуты @xmlns:ns на корневом элементе.
Литеральный режим ближе всего к преобразованию без потерь, однако порядок смешанного содержимого между элементами и текстом передать непросто. Компактный режим неизбежно теряет атрибуты. Badgerfish, это прагматичная золотая середина.
Нет. Преобразование выполняется в вашем браузере.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Смешивание цветов
Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Инструмент доступен на других языках
- XML zu JSON [DE]
- XML para JSON [PT]
- Chuyển đổi từ XML sang JSON [VI]
- XML till JSON [SV]
- แปลง XML เป็น JSON [TH]
- XML ke JSON [ID]
- XML → JSON [KO]
- XML a JSON [ES]
- XMLからJSONへ [JA]
- XML إلى JSON [AR]
- XML vers JSON [FR]
- XML naar JSON [NL]
- XML do JSON [PL]
- XML in JSON [IT]
- XML'den JSON'a [TR]
- XML 转 JSON [ZH]
- XML to JSON [EN]