Conversor de XML para JSON
Converta dados XML para JSON. Transforme respostas de APIs XML legadas, payloads SOAP ou feeds RSS/Atom em JSON — atributos vão em @attributes, texto em #text, elementos repetidos viram arrays — direto no navegador.
Dicas de uso
- Elementos com atributos são agrupados em um objeto `@attributes`, mantido separado do texto ou dos elementos filhos do próprio elemento.
- Quando um elemento mistura atributos com elementos filhos ou texto, a parte de texto é armazenada em `#text`, para nunca ser confundida com um valor de atributo.
- Elementos irmãos que compartilham o mesmo nome são automaticamente agrupados em um array: três tags `
- ` viram um array de 3 elementos, enquanto uma única permanece como um objeto simples.
- Um elemento vazio sem atributos, texto ou filhos (por exemplo `
`) é convertido em `null`. - Prefixos de namespace como `xmlns` não são separados — um elemento continua com a chave `ns:tag`, prefixo incluído.
Perguntas frequentes
Curiosidade — Por que não existe uma única forma "correta" de transformar XML em JSON
Diferente do simples mapeamento linha-para-objeto entre CSV e JSON, não existe uma convenção universalmente aceita para converter entre XML e JSON. O XML permite que atributos, nós de texto e elementos filhos coexistam dentro de um mesmo elemento, enquanto o JSON só tem pares chave-valor simples — então alguma convenção precisa ser escolhida no momento da conversão. Implementações importantes como xml2json, xml-js e org.json adotaram, cada uma, regras diferentes sobre como representar atributos e como tratar texto que coexiste com elementos filhos.
Ainda assim, desenvolvedores continuam encontrando XML com frequência. APIs web baseadas em SOAP, integrações de sistemas com décadas de existência nas áreas financeira, governamental e de saúde, feeds RSS/Atom e arquivos de layout do Android são apenas algumas das áreas onde o XML ainda é o formato padrão hoje. Existe uma necessidade persistente de pegar dados extraídos desses sistemas legados e alimentá-los em um conjunto de ferramentas moderno que só entende JSON — processando-os com jq ou manipulando-os como um objeto simples em JavaScript.
A convenção `@attributes`/`#text` usada por esta ferramenta é uma escolha prática e comum, não uma notação carregada de símbolos. Elementos-folha sem atributos são convertidos diretamente para seu valor de texto, o que mantém legíveis como JSON simples valores de configuração básicos ou um título de RSS, enquanto elementos que possuem atributos são explicitamente separados — assim, basta olhar o resultado convertido para saber exatamente quais valores eram originalmente atributos.