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

Вставьте XML и получите JSON, в котором сохранены элементы, атрибуты и текст, чтобы работать с ними в JavaScript или API.

JSON

Преобразование XML-документов в JSON

XML и JSON по-разному представляют данные: в XML есть атрибуты, текстовые узлы и повторяющиеся элементы, а в JSON — только объекты, массивы и значения. Этот конвертер использует компактное отображение без потерь. Каждый элемент становится ключом, атрибуты собираются в _attributes, текстовое содержимое хранится в _text, а элемент, встречающийся больше одного раза, становится массивом. XML-декларация сохраняется в _declaration. Поскольку ничего не теряется, вы можете отредактировать JSON и преобразовать его обратно в XML с помощью конвертера JSON в XML.

Как пользоваться

  1. Вставьте XML, например SOAP-ответ, RSS-ленту или Maven-файл pom.xml.
  2. Посмотрите JSON в редакторе вывода; ошибки разбора указывают строку, в которой XML сформирован некорректно.
  3. Скопируйте JSON или нажмите «Поменять», чтобы преобразовать его обратно в XML.

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

Почему числа из моего XML превращаются в строки?
В XML нет типов данных: всё содержимое элемента — это текст. Конвертер сохраняет значения как строки в _text, чтобы ничего не было угадано неверно, например почтовый индекс с ведущим нулём.
Почему элемент иногда становится объектом, а иногда массивом?
Одиночный элемент становится объектом, а повторяющиеся соседние элементы с одинаковым именем — массивом. Если ваш код должен обрабатывать оба случая, проверяйте значение через Array.isArray или приводите его к массиву.
Что означают _attributes и _text?
_attributes содержит атрибуты элемента в виде пар «ключ-значение», а _text — его текстовое содержимое. Фиксированные имена исключают конфликты между атрибутами и дочерними элементами.

Пример: XML в JSON

Ввод XML

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <book id="bk101">
    <title>XML Developer's Guide</title>
    <price>44.95</price>
  </book>
  <book id="bk102">
    <title>Midnight Rain</title>
    <price>5.95</price>
  </book>
</catalog>

Вывод JSON

{
  "_declaration": {
    "_attributes": {
      "version": "1.0",
      "encoding": "UTF-8"
    }
  },
  "catalog": {
    "book": [
      {
        "_attributes": {
          "id": "bk101"
        },
        "title": {
          "_text": "XML Developer's Guide"
        },
        "price": {
          "_text": "44.95"
        }
      },
      {
        "_attributes": {
          "id": "bk102"
        },
        "title": {
          "_text": "Midnight Rain"
        },
        "price": {
          "_text": "5.95"
        }
      }
    ]
  }
}

Другие преобразования