Перевести XML в JSON
Текст обрабатывается в браузере и не отправляется на сервер.
Переводит XML в JSON: элементы становятся ключами, атрибуты — ключами с @, повторяющиеся элементы — массивом. Числа и true/false распознаются, а в настройках их можно оставить текстом.
Вставьте данные или откройте файл: дерево и перевод в другие форматы появятся здесь.
Дальше обычно делают
Зачем переводить XML в JSON
XML — формат из вложенных тегов, на нём построены выгрузки из 1С, электронные документы, отчётность в налоговую и ответы многих банковских и государственных сервисов. Читать такой файл трудно: данные перемешаны с тегами, а часть значений спрятана в атрибутах. JSON хранит те же данные короче, с ним работают современные программы, скрипты и сервисы.
Перевод пригодится разработчику, который связывает старую систему с новой, и аналитику, которому прислали XML-выгрузку: в JSON проще найти нужное поле, посмотреть структуру деревом или перевести список записей в таблицу CSV для Excel. Если результат пойдёт в автоматическую обработку, проверьте перевод на нескольких файлах: форма JSON зависит от того, сколько раз в файле повторяется элемент.
Как пользоваться
Вставьте XML в поле слева или откройте файл .xml.
Справа откроется JSON. Правило перевода написано под результатом.
Скопируйте или скачайте JSON. Если ИНН, коды или номера нужны текстом, снимите в «Настройках» флажок «Распознавать числа в XML и CSV».
Пример
<order id="7"> <item sku="A-100">Бумага</item> <item sku="B-205">Картридж</item> <paid>false</paid> <inn>007701</inn> </order>
{
"order": {
"@id": 7,
"item": [
{
"@sku": "A-100",
"#text": "Бумага"
},
{
"@sku": "B-205",
"#text": "Картридж"
}
],
"paid": false,
"inn": "007701"
}
}Вопросы и ответы
Как переводятся атрибуты и текст элемента?
Атрибут становится ключом с @: id="7" — "@id": 7. Если у элемента есть и атрибуты, и текст, текст попадает в ключ #text. Элемент без атрибутов становится просто значением: <paid>false</paid> — "paid": false.
Почему один элемент не стал массивом?
Массивом становятся элементы, которые повторяются. Если в другом файле <item> один, в JSON будет объект, а не массив из одного объекта. Код, который читает такой JSON, должен принимать оба варианта.
Почему `007701` остался строкой, а `7` стал числом?
Числа с ведущими нулями остаются строками, иначе потерялись бы нули. Остальные числа и true/false распознаются. Чтобы все значения остались текстом, снимите флажок «Распознавать числа в XML и CSV».
Что с пространствами имён и комментариями?
Префиксы остаются частью имени ключа: <s:Body> — "s:Body", объявления xmlns — ключами с @. Комментарии XML в JSON не переносятся.
Задача сложнее инструмента
Архитектуру и интеграции с API можно обсудить на консультации: выберите время, и вы получите письменный итог с конкретными шагами.
Записаться на консультацию