Ferramenta · Dados e formatos

Conversor JSON ⇄ XML

Cole um JSON para gerar o XML, ou um XML para gerar o JSON. A ferramenta segue uma convenção simples para atributos e listas, avisa o que se perde na conversão e recusa XML perigoso.

Entrada

Pronto.

Tudo é convertido no seu navegador. Nada é enviado a servidor.

Resultado

A convenção usada

JSON e XML não têm a mesma estrutura: o XML tem atributos, texto misturado com elementos e ordem entre irmãos. Para converter, a ferramenta usa uma convenção comum:

No XMLNo JSON
Elemento com só texto: <nome>Ana</nome>Texto: "nome": "Ana"
Atributo: <item id="7">Chave com arroba: "@id": "7"
Texto junto com atributos ou filhosChave "#text"
Elementos repetidos com o mesmo nomeLista: "item": ["a", "b"]
Elemento vazio: <obs/>Texto vazio: "obs": ""

Exemplo

Este JSON:

{"pedido": {"@id": "7", "cliente": "Ana & Cia", "item": ["caneta", "lápis"]}}

vira este XML:

<?xml version="1.0" encoding="UTF-8"?>
<pedido id="7">
  <cliente>Ana &amp; Cia</cliente>
  <item>caneta</item>
  <item>lápis</item>
</pedido>

Os caracteres especiais (&, <, >) são escapados na ida e restaurados na volta.

O que se perde na conversão

Chaves que não são nomes de elemento válidos

Um nome de elemento XML não pode começar com número nem ter espaço. Se o JSON tiver uma chave assim, como "1o lugar", a ferramenta a troca por um nome válido (_1o_lugar) e avisa. Nomes que começam com "xml" também são reservados e recebem um sublinhado.

Segurança

Quando usar

Esta conversão ajuda a ler no JSON um XML vindo de um sistema legado, de uma nota fiscal ou de uma resposta SOAP, e a montar um XML a partir de dados que você já tem em JSON. Ela não valida o XML contra um esquema (XSD) e não preserva o espaço em branco nem a ordem de elementos de tipos diferentes.

Perguntas frequentes

Por que os atributos viram chaves com arroba?

Para a conversão ser reversível: o arroba marca que a chave é um atributo, e não um elemento filho.

O XML com namespace funciona?

Funciona: o prefixo faz parte do nome (soap:Envelope) e as declarações xmlns viram atributos. A ferramenta não resolve nem valida namespaces.

Posso converter um XML grande?

Até 5 milhões de caracteres. Acima disso, a ferramenta recusa, para não travar o navegador.

O resultado é igual ao de outras ferramentas?

Pode diferir. Não existe uma conversão única entre JSON e XML. Esta usa a convenção descrita acima, e o mais importante é usar a mesma nos dois sentidos.