Conversor de JSON para XML

Cole um objeto JSON e obtenha o XML dele. Chaves que começam com @ viram atributos, #text vira o texto de um elemento, e um array vira o mesmo elemento repetido. Nada do que você cola sai do seu navegador.

Gratuita Funciona no seu navegador Verificada em terça-feira, 10 de novembro de 2026

Um objeto com um membro: o nome dele é o elemento raiz.

Recuo

A primeira linha, <?xml version="1.0" encoding="UTF-8"?>.

Resultado

XML — Copie-o, ou baixe-o como converted.xml.
Elementos — Quantos elementos foram escritos, contando a raiz.
XML

Esta ferramenta funciona no seu navegador. O que você digita não é enviado para nós.

Como usar

  1. Cole o JSON em JSON. Seu único membro de nível superior vira o elemento raiz.
  2. Use o prefixo @ para atributos, como @id, e #text para o texto de um elemento.
  3. Escolha um Recuo, ou Sem quebras de linha (minificado) para o XML mais curto.
  4. Copie o XML, ou baixe-o como converted.xml.

O mapeamento, regra por regra

XML tem elementos e atributos; JSON tem objetos, arrays e valores. O mapeamento une os dois em um sentido. O nível superior é um objeto com um membro: o nome dele é o elemento raiz. Um objeto vira um elemento. Um membro cujo nome começa com @ vira um atributo, e um membro chamado #text vira o texto do elemento. Qualquer outro membro vira um elemento filho com esse nome.

Um array gera um elemento filho por item, todos com o nome do array, então uma lista de livros é escrita como elementos book repetidos. Um texto, um número, ou true ou false, vira texto. null e um objeto vazio viram um elemento vazio. Um array vazio não tem forma em XML e fica de fora.

  • Um nome precisa ser um nome XML: uma chave como first name, com espaço, não pode ser usada como nome de elemento.
  • Um array dentro de um array é recusado, porque não há nome de elemento para dar aos seus itens.
  • O texto de um número é escrito como o JavaScript o escreve, então um número com mais de 15 ou 16 dígitos significativos pode perder dígitos, como na leitura de JSON.

O que o mapeamento não consegue manter

XML não tem tipos, então a diferença entre o número 12 e o texto “12” se perde na volta; o conversor de XML para JSON lê como número um texto que parece número, a menos que a tipagem seja desligada. Um objeto vazio e null parecem iguais em XML, e um array com um item volta como esse item. Esses são os limites do mapeamento, não erros da ferramenta.

Comentários e instruções de processamento não são escritos, porque o JSON não tem onde guardá-los. Um texto dentro de um elemento recebe escape, então &, < e > continuam como texto no XML.

Exemplo resolvido: o catálogo padrão

O JSON padrão tem um membro, catalog. Seu @version vira o atributo version do elemento catalog, e seu array book vira dois elementos book. Cada livro usa o seu @id como atributo id, e as chaves title, price e inStock viram elementos filhos. O price null do segundo livro vira o elemento vazio price.

Com dois espaços e a declaração, a saída tem oito elementos: o catalog, dois books, e três filhos do primeiro book e dois do segundo. A contagem mostra 8.

Perguntas frequentes

Como escrevo um atributo em JSON?

Dê à chave um prefixo @. O membro "@id": "1" vira id="1" no elemento que o contém. Os valores de atributo devem ser texto, número, ou true ou false, não objetos nem arrays.

Por que meu array vira vários elementos com o mesmo nome?

XML não tem array. Cada item do array vira um elemento com o nome do array, na mesma ordem, que é a forma usual de o XML listar coisas repetidas, como livros ou itens.

Por que recebo um erro sobre o nível superior?

O XML precisa de exatamente um elemento raiz. O JSON deve ser um objeto com um membro, como {"catalog": {...}}; uma lista ou vários membros no nível superior não podem formar um documento.

Por que uma chave com espaço é recusada?

Nomes de elemento em XML não podem conter espaços. Renomeie a chave, por exemplo para first-name ou firstName, antes de converter.

Meu JSON é enviado para algum servidor?

Não. A conversão roda no seu navegador. Nada do que você cola é enviado para o nosso servidor ou guardado lá.

Fontes

Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.

Usamos cookies necessários para o site funcionar. Com o seu consentimento, o Google também usa cookies de publicidade para mostrar anúncios personalizados. Se você recusá-los, continuará vendo anúncios, mas eles não serão personalizados.