XML to JSON Converter
Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.
Select XML file
or drag and drop here
Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.
or drag and drop here
XML e JSON são formatos de intercâmbio de dados, mas vêm de épocas diferentes da web. XML, padronizado em 1998, foi projetado como um formato de marcação autodescritivo com atributos, namespaces e validação de esquema. JSON surgiu no início dos anos 2000 como um formato mais leve, mais adequado para tempos de execução de JavaScript e APIs modernas. A maioria das novas APIs da web fala JSON; muitos sistemas mais antigos — serviços SOAP, feeds RSS, arquivos de configuração, integrações empresariais — ainda produzem XML. A conversão entre eles é uma das tarefas de interoperabilidade mais comuns no desenvolvimento moderno.
A conversão não é perfeitamente sem perdas porque os dois formatos têm poderes expressivos diferentes. XML possui atributos (que o JSON não possui nativamente), distingue entre conteúdo de texto e nomes de elementos e oferece suporte a conteúdo misto (elementos contendo texto e elementos filhos). O modelo simples de objeto/array do JSON não pode representar diretamente esses recursos, portanto, os conversores aplicam convenções: os atributos tornam-se chaves com prefixo @, o conteúdo do texto torna-se uma chave #text e assim por diante.
Este conversor analisa XML usando o DOMParser integrado do navegador e percorre a árvore DOM resultante para produzir JSON. Elementos com o mesmo nome de tag dos irmãos são coletados em arrays; os atributos vão para chaves especiais; namespaces e instruções de processamento são preservados quando presentes. O resultado é um JSON legível por humanos que retorna razoavelmente ao XML.
A maioria dos códigos de aplicativos modernos fica mais confortável com JSON. JavaScript analisa JSON nativamente, o módulo json do Python está na biblioteca padrão e praticamente todas as outras linguagens têm suporte equivalente a JSON de primeira classe. O processamento XML requer a importação de bibliotecas adicionais e a gravação de mais clichês. A conversão de XML recebido em JSON antes do processamento costuma ser o caminho mais rápido do feed XML externo para a estrutura de dados interna.
As ferramentas também são baseadas em JSON. Embelezadores JSON, validadores, validadores de esquema, linguagens de consulta (jq, JSONPath) e visualizadores são abundantes; os equivalentes XML são menos numerosos e frequentemente mais antigos. Trabalhar em JSON desbloqueia um ecossistema de ferramentas mais rico.
Cole XML, obtenha JSON.
DOMParser produz um DOM XML idêntico ao que o navegador usa para páginas XHTML. O conversor percorre este DOM recursivamente. Para cada elemento ele cria um objeto JSON: os atributos tornam-se chaves prefixadas com @ (por exemplo, @id, @class); os elementos filhos do elemento são recorrentes na mesma estrutura; o conteúdo do texto, quando presente ao lado das crianças, fica sob uma chave #text.
Elementos filhos repetidos com o mesmo nome de tag são coletados em uma matriz JSON. Um único filho de um determinado nome aparece como um valor de objeto; vários filhos aparecem como uma matriz de objetos. Esta convenção funciona bem na prática, mas significa que a forma JSON depende se os elementos aparecem uma ou várias vezes – uma imperfeição conhecida do mapeamento XML para JSON.
Namespaces são preservados como parte dos nomes dos elementos (prefixo:localName). As instruções de processamento e seções CDATA são convertidas em conteúdo de texto. As declarações XML e DOCTYPEs são removidas da saída JSON, mas não afetam os dados.