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.
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
- Cole XML ou carregue um arquivo .xml no editor da esquerda.
- No JSON, leia os atributos em _attributes, o texto dos elementos em _text e os elementos repetidos nos arrays.
- 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 &.
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.