Como converter JSON para XML
- Cole o JSON ou abra um arquivo
.json. O XML aparece ao lado enquanto você digita. - Defina o nome do elemento raiz (ou deixe em branco para usar a única chave de nível superior), o prefixo de atributos e a indentação.
- Copie o XML ou baixe-o como arquivo
.xml.
Como o JSON é mapeado para XML
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | atributo id="7" no elemento pai |
{"#text": "Hello"} | conteúdo de texto do elemento pai |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key> – nomes inválidos são corrigidos |
array de nível superior [1, 2] | <root><item>1</item><item>2</item></root> |
&, <, > no texto | &, <, > |
JSON vs XML: quais são as diferenças
O JSON tem arrays, números, booleanos e null; o XML tem apenas elementos, atributos e texto, então os tipos não são preservados: 42 e "42" viram o mesmo texto 42. O XML, por sua vez, tem atributos, namespaces e conteúdo misto, que faltam no JSON. Se você pretende converter o XML de volta para JSON depois, mantenha as convenções comuns usadas aqui – @ para atributos e #text para conteúdo de texto –, que a maioria dos conversores entende.
Perguntas frequentes
Como os arrays JSON são convertidos para XML?
Cada item vira um elemento com o nome da chave do array, então {"book": [ … ]} vira vários elementos <book>. Os itens de um array de nível superior viram elementos <item> dentro da raiz.
Como criar atributos XML a partir de JSON?
Coloque @ antes da chave: {"user": {"@id": 7, "name": "Ada"}} vira <user id="7"><name>Ada</name></user>. Você pode mudar o prefixo nas opções.
O que acontece com chaves que não são nomes XML válidos?
Caracteres que nomes XML não podem conter, como espaços, são substituídos por sublinhados (_), e nomes que começam com um dígito ou com “xml” ganham um sublinhado na frente: "2nd key" vira <_2nd_key>.
O XML gerado é válido?
Sim. Caracteres especiais são escapados, todo nome de elemento é válido e o documento tem exatamente um elemento raiz, com uma declaração XML opcional no topo.