Pular para o conteúdo

Converter XML em JSON

Converte XML em JSON com o xml-js no modo compacto: os atributos ficam em _attributes, o texto em _text e elementos irmãos repetidos viram um array. Todos os valores continuam strings.

Inspecionar como JSON uma resposta SOAP, RSS ou de uma API XML legada antes de escrever o código de parsing.

XML

Quando usar

  • Inspecionar como JSON uma resposta SOAP, RSS ou de uma API XML legada antes de escrever o código de parsing.
  • Extrair valores de atributos e de texto de uma exportação XML para alimentar ferramentas baseadas em JSON.

Como usar

  1. Cole XML ou carregue um arquivo .xml no editor da esquerda.
  2. No JSON, leia os atributos em _attributes, o texto dos elementos em _text e os elementos repetidos nos arrays.
  3. Copie o JSON e mapeie os campos de que precisa para a sua própria estrutura.

Entrada XML

<order id="1042">
  <customer>Ada Lovelace</customer>
  <item sku="A-1">Keyboard</item>
  <item sku="B-7">Mouse</item>
</order>

JSON

{
  "order": {
    "_attributes": {
      "id": "1042"
    },
    "customer": {
      "_text": "Ada Lovelace"
    },
    "item": [
      {
        "_attributes": {
          "sku": "A-1"
        },
        "_text": "Keyboard"
      },
      {
        "_attributes": {
          "sku": "B-7"
        },
        "_text": "Mouse"
      }
    ]
  }
}

Detalhes e limitações

A conversão roda no navegador. Não há configurações; o formato compacto é fixo.

Um elemento que aparece uma vez é um objeto, mas se aparecer duas vezes vira um array, então o formato do JSON pode mudar conforme os dados. Trate os dois casos no código.

A declaração XML, os comentários e as seções CDATA são mantidos como _declaration, _comment e _cdata. Não há validação por schema (XSD) nem DTD.

Conteúdo misto (texto intercalado com tags) perde a ordem original.

FAQ

Números e booleanos são convertidos para tipos JSON?

Não. Valores de atributos e texto continuam strings, por exemplo "1042". Converta os tipos no seu próprio código quando necessário.

O que acontece se o meu XML estiver malformado?

A página mostra um erro "Invalid XML" em vez do JSON, como "unclosed tag <order>" ou "Unexpected close tag (line 3, column 8)". Feche todos os elementos, coloque os valores de atributos entre aspas e escape & como &amp;.

Posso obter JSON sem as chaves _text e _attributes?

Não nesta página. O formato compacto as mantém para que atributos e texto não se confundam. Reorganize o resultado no código depois de copiar.

Especificações e referências