Conversor de JSON para XML

Transforme dados JSON em XML válido.

Funciona no navegador. Nada do que você digita é enviado a lugar nenhum.

Como converter JSON para XML

  1. Cole ou envie seu JSON.
  2. Digite um nome para o elemento raiz.
  3. Copie o XML ou baixe.

Exemplo: JSON na entrada, XML na saída

JSONXML
{"name":"Sam"}<root><name>Sam</name></root>
{"@_id":"5","#text":"Widget"}<root id="5">Widget</root>
{"tag":["a","b"]}<root><tag>a</tag><tag>b</tag></root>

Como chaves JSON viram nomes de tag

  • Um caractere que o XML não permite em um nome, como um espaço, é trocado por _, então "first name" vira first_name.
  • Uma chave que começa com um dígito ganha um _ na frente, já que nomes XML não podem começar com um número.
  • Uma chave que colide com uma já renomeada ganha um número no final, então um segundo first_name vira first_name_2.

Onde JSON para XML é útil

  • Alimentar dados em um sistema ou API mais antigo que só aceita XML.
  • Montar um feed pequeno, como um arquivo estilo RSS, a partir de uma fonte de dados JSON.
  • Conferir como um payload JSON ficaria como um corpo de requisição SOAP ou XML legado.

Limites a considerar

  • Um null do JSON vira um elemento vazio, já que o XML não tem nada que signifique exatamente null.
  • Chaves que diferem só na caixa, como Name e name, viram duas tags diferentes, já que nomes de tag XML diferenciam maiúsculas de minúsculas.
  • Números e booleanos são escritos como texto simples no XML. Quem for ler precisa saber processá-los de volta para o tipo original.

Perguntas frequentes sobre JSON para XML

Como arrays são escritos em XML?

Cada item em um array vira um elemento repetido, nomeado pela chave dele. Um array no nível mais alto é envolvido em elementos item sob a raiz.

Como eu crio atributos?

Comece uma chave com @_, como "@_id": 5, e ela vira um atributo do elemento pai. Isso combina com a saída do conversor de XML para JSON.

E se uma chave não for um nome de tag XML válido?

Caracteres que o XML não permite em nomes, como espaços, são trocados por _, e um nome que começa com um dígito ganha um _ na frente. Então "first name" vira first_name.

Posso fazer o caminho de ida e volta por XML para JSON e voltar?

Sim. JSON produzido pelo conversor de XML para JSON com atributos ligados, incluindo suas chaves @_ e valores #text, converte de volta para o XML correspondente aqui.

O que acontece com um array JSON de valores simples, como uma lista de tags?

Cada valor vira seu próprio elemento repetido, nomeado pela chave do array; por exemplo, um array tags de ["a","b"] sob a chave tag vira <tag>a</tag><tag>b</tag>.

A saída inclui uma declaração XML?

Sim. Todo resultado começa com <?xml version="1.0" encoding="UTF-8"?> em sua própria linha.

Ele escapa caracteres especiais como < ou & dentro do texto?

Sim. Qualquer caractere que quebraria a sintaxe XML dentro de um texto ou valor de atributo é escapado automaticamente, então o resultado sempre volta a processar limpo.

Posso aninhar um objeto dentro de um array dentro de outro objeto?

Sim. Qualquer profundidade e mistura de objetos e arrays converte, com cada nível virando seu próprio conjunto de elementos aninhados.

Ferramentas relacionadas