← Todas as ferramentas

Conversor de JSON para XML

Converta JSON para XML e XML para JSON na hora pelo navegador. Apenas local e privado, com notas sobre atributos, arrays, namespaces e armadilhas comuns.

JSON para XML e de volta: um conversor prático para dois mundos de dados

A maioria dos desenvolvedores trabalha com XML e JSON, querendo ou não. As APIs web modernas falam quase que exclusivamente em JSON, mas no momento em que você lida com um banco, uma seguradora, um endpoint de governo, um ERP corporativo ou um antigo serviço SOAP, o XML reaparece. O conversor de JSON para XML desta página transforma JSON em XML e XML de volta em JSON diretamente no seu navegador, para que você possa transitar entre esses dois formatos sem copiar dados sensíveis para um serviço remoto.

Chaves de JSON aninhadas e brilhantes se transformando em uma árvore de tags XML entre colchetes sobre um fundo índigo escuro
Objetos JSON e árvores de tags XML descrevem os mesmos dados com formatos diferentes.

O que XML e JSON realmente são

XML (Extensible Markup Language) é um formato de marcação construído em torno de tags aninhadas, atributos e namespaces. Foi projetado para documentos e troca de dados estruturados, e carrega bastante maquinaria: esquemas (XSD), namespaces, instruções de processamento, comentários, seções CDATA e uma declaração formal no topo. Essa riqueza é o motivo de o XML ainda dominar sistemas legados e corporativos. Você o encontra em serviços web SOAP, feeds RSS e Atom, arquivos de configuração (Spring, Maven, configs de aplicativos .NET), formatos de documentos de escritório e padrões de mensagens financeiras como SWIFT e ISO 20022, onde bancos e seguradoras continuam trocando XML todos os dias.

JSON (JavaScript Object Notation) é bem mais simples: objetos com pares de chave/valor, arrays, strings, números, booleanos e null. Ele se mapeia quase um para um nas estruturas de dados de praticamente toda linguagem de programação, e é exatamente por isso que dominou as APIs web modernas, os endpoints REST, os aplicativos móveis e arquivos de configuração como o package.json. O JSON costuma ser de 30 a 50 por cento menor que o XML equivalente e faz o parsing visivelmente mais rápido, em parte porque dispensa as tags de fechamento e a maquinaria de atributos que tornam o XML prolixo.

As principais diferenças que importam para a conversão

Os dois formatos se sobrepõem o suficiente para serem mapeados entre si, mas não de forma limpa. Algumas diferenças estruturais causam quase todo o atrito:

  • Atributos versus nós filhos. O XML distingue entre <user id="1"> (um atributo) e <user><id>1</id></user> (um elemento filho). O JSON não tem esse conceito, então os conversores inventam um. Por convenção, os atributos são agrupados em uma chave como @attributes ou prefixados com @, enquanto o texto do elemento vai parar em uma chave como #text.
  • Arrays. O JSON tem arrays nativos. O XML não. Uma lista em XML é apenas a mesma tag repetida, como três elementos <item> em sequência. Os conversores precisam inferir quando irmãos repetidos devem se condensar em um array JSON e quando um único elemento deve permanecer um objeto simples.
  • Namespaces. O XML usa namespaces (os prefixos xmlns:soap) para evitar colisões de nomes entre esquemas. O JSON não tem nada equivalente, então os prefixos ou sobrevivem como caracteres literais nas chaves ou são removidos.
  • Verbosidade e metadados. O XML pode anexar metadados a um nó por meio de atributos; o JSON expressa tudo como chaves e valores. Isso torna o JSON mais compacto e fácil de ler, enquanto o XML mantém poder de validação por meio de esquemas XSD.

Pegadinhas de conversão para ficar de olho

Fazer um ciclo completo de JSON para XML e de volta para JSON esperando um resultado idêntico é o erro clássico. A conversão é com perda em ambas as direções, a menos que você controle as regras. Tenha isto em mente:

  • Atributos ficam distorcidos. Ao converter JSON para XML, a ferramenta precisa de uma regra para definir quais chaves viram atributos e quais viram elementos. No sentido inverso, os atributos têm que ir parar em algum lugar, e esse "algum lugar" (prefixo @, bloco @attributes) difere entre as bibliotecas. Se um parser a jusante espera uma convenção diferente, os dados parecem errados mesmo que nada tenha sido perdido.
  • Elemento único versus array. Um feed XML com um <item> produz um objeto JSON; o mesmo feed com dois itens produz um array JSON. Código que pressupõe um array quebra no caso de item único. Essa é uma fonte comum de bugs de parsing de RSS e SOAP.
  • Namespaces vazam ou desaparecem. Dependendo da ferramenta, soap:Body pode virar uma chave literalmente chamada soap:Body, ou o prefixo pode ser descartado por completo, alterando o significado do documento.
  • Conteúdo misto e tipos. O XML trata tudo como texto, então um valor como true ou 42 pode permanecer uma string após a conversão para JSON, enquanto o sentido inverso não tem um lugar nativo para comentários ou CDATA.
Duas árvores de dados estruturados conectadas por nós de marcação abstratos feitos de luz ciano e dourada
Mapear entre formatos significa decidir como atributos, arrays e namespaces se traduzem.

Por que a conversão apenas local importa

Os payloads JSON e XML costumam ser a coisa mais sensível que um desenvolvedor manipula: respostas de API com tokens, mensagens SOAP com números de conta, arquivos de configuração com credenciais. Um conversor que roda no seu navegador nunca envia nada disso. O parsing e a serialização acontecem na sua máquina, nada é enviado a um servidor, e você pode usar a ferramenta offline depois que a página carregar. Para depurar dados de produção ou qualquer coisa sob um regime de conformidade, essa é a diferença entre uma verificação rápida e segura e um vazamento acidental de dados.

Se você precisar limpar o resultado depois, combine isto com os nossos outros conversores de dados, ou organize sua saída com o formatador de JSON antes de entregá-la à próxima ferramenta do seu pipeline.

Perguntas frequentes

O conversor envia meu JSON ou XML para algum lugar?

Não. Tanto a conversão de JSON para XML quanto a de XML para JSON rodam inteiramente no seu navegador. Seus dados nunca saem do seu dispositivo e a ferramenta funciona offline após a página carregar.

Como os atributos XML são tratados ao converter para JSON?

Os atributos XML são colocados em uma chave dedicada, comumente prefixada com um arroba ou agrupada sob um bloco de atributos, já que o JSON não tem conceito nativo de atributo. O conteúdo de texto do elemento é armazenado separadamente, de modo que ambos sobrevivem à conversão.

Por que meu elemento XML único virou um objeto em vez de um array?

O XML não tem arrays nativos, então uma lista é apenas uma tag repetida. Quando apenas um elemento está presente, os conversores não conseguem distingui-lo de um objeto comum, então ele vira um objeto. Dois ou mais irmãos com o mesmo nome de tag se condensam em um array JSON.

O que acontece com namespaces XML como soap ou xmlns?

O JSON não tem equivalente aos namespaces XML. Dependendo da conversão, o prefixo é mantido como texto literal dentro da chave ou removido. Verifique a saída se o seu consumidor a jusante depender de prefixos de namespace.

Posso converter JSON de volta para XML e obter o documento original?

Nem sempre exatamente. A conversão é com perda em ambas as direções porque recursos do XML como comentários, CDATA e a distinção entre atributo e elemento não têm uma contraparte limpa em JSON. O ciclo completo funciona melhor quando você controla as regras de nomenclatura dos dois lados.

Onde o XML ainda é usado em comparação com o JSON?

O XML vive em sistemas legados e corporativos: serviços web SOAP, feeds RSS e Atom, arquivos de configuração e mensagens financeiras como SWIFT e ISO 20022. O JSON domina as APIs web modernas, os endpoints REST e os aplicativos móveis.