Converter JSON para XML

Aqui você converte JSON para XML de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Sem perdas Nada é descartado. O XML guarda exatamente o que o JSON guardava.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

XML precisa de exatamente uma raiz, e o JSON nem sempre nomeia uma

Um documento XML tem um único elemento mais externo. Um documento JSON pode ser um objeto com quinze chaves, um array ou um número solto, e nenhum deles vem com um nome para o contêiner. Então a conversão tem uma regra: um objeto com exatamente uma chave usa essa chave como raiz, e tudo mais é envolvido num elemento chamado root.

A exceção é a que pega o formato mais comum de todos: se essa única chave guardar um array, {"items": [1, 2]}, usá-la como raiz escreveria <items> duas vezes e produziria um documento sem elemento mais externo — então <root> envolve a repetição.

Um array JSON vira o mesmo elemento XML repetido

XML não tem tipo array e nunca precisou: uma lista é a mesma tag escrita várias vezes no mesmo pai. Um objeto guardando três tags produz três elementos <tags> em sequência.

É o único lugar onde XML se encaixa melhor no JSON do que os formatos tabulares. Converter o mesmo array para CSV força uma escolha entre colunas extras, uma string juntada ou linhas extras — em XML a repetição é nativa.

Atributos existem, e o prefixo @ é como você pede por eles

XML tem duas formas de anexar um valor a um elemento — um atributo dentro da tag ou um elemento filho — e schemas se importam bastante com qual. JSON tem uma só. A convenção aqui faz a ponte: uma chave começando com @ é escrita como atributo, e uma chave chamada #text fornece o texto do próprio elemento.

Essa convenção não é arbitrária; é o que o leitor de XML deste site produz na direção oposta. Um documento convertido para JSON, editado e convertido de volta devolve os atributos como atributos.

Nomes de elemento são reescritos quando o JSON permite o que o XML não permite

Chaves JSON podem ser qualquer string: espaços, barras, emoji, um dígito no começo. Nomes de elemento XML não podem. O escritor reescreve em vez de falhar, contra uma lista deliberadamente estreita — A-Z, a-z, 0-9, sublinhado, ponto e hífen sobrevivem, o resto vira sublinhado.

A lista é mais estreita que a própria regra do XML 1.0, e esse é o caso mais provável de pegar você: XML permite letras acentuadas, então uma chave chamada "café" chega como <caf_> e "nome" em outro alfabeto chega como <__>. Renomeie essas chaves no JSON antes de converter.

Namespaces, schemas e tudo que o XML tem e o JSON não

XML traz namespaces, schemas XSD, DTDs, instruções de processamento, seções CDATA e assinaturas digitais — o registro deste site lista suporte a assinatura como uma característica do formato, e é o motivo dele continuar sendo a espinha dorsal de câmbio bancário e governamental.

O que isso significa na prática: a saída é um documento bem formado, não um válido. Se o receptor valida contra um XSD, espere adicionar uma declaração de namespace no elemento raiz e possivelmente reordenar elementos.

Escape, nulos e os caracteres que quebrariam o documento

E comercial, colchetes angulares e aspas duplas num valor são escapados na saída, o que impede uma descrição de produto contendo "Isso é <especial> & único" de encerrar o documento cedo. Tudo mais, incluindo apóstrofos, é escrito como UTF-8.

Um null do JSON vira um elemento vazio: a tag está presente sem nada entre a abertura e o fechamento. XML também tem xsi:nil para exatamente isso, e alguns schemas exigem essa forma.

A saída é indentada, e nenhuma declaração XML é escrita

O documento é escrito com indentação de dois espaços e um elemento por linha, o que torna legível e torna um diff entre dois payloads compreensível. Não começa com a linha <?xml version="1.0"?>. XML 1.0 torna a declaração opcional e define UTF-8 como padrão.

Vários receptores mais antigos discordam disso, e alguns falham com mensagem pouco clara quando a linha falta. É uma linha para adicionar no topo — vale saber antes da primeira submissão.

Tamanho: XML custa mais bytes que o JSON custava

Todo valor fica envolvido numa tag de abertura e outra de fechamento, então os nomes de campo aparecem duas vezes por registro em vez de uma. Para um payload de valores pequenos com nomes de campo longos, o documento pode ficar de duas a três vezes o tamanho do JSON de origem.

Isso é um custo real numa fila com limite de tamanho de mensagem e nenhum custo numa transferência de arquivo, que é para onde a maioria dessas entregas vai. Onde importa, a resposta é compressão — XML é texto altamente repetitivo e comprime muito bem com gzip.

Valide o XML antes de enviar para qualquer lugar

Duas checagens, em ordem. Boa formação primeiro: qualquer editor de XML, navegador ou parser de linha de comando diz em um segundo se o documento é interpretável, e isso deve sempre passar aqui.

Validação contra o schema em segundo, e espere que falhe na primeira vez. As falhas são informativas — um namespace faltando, um elemento na ordem errada — e cada uma é um pequeno ajuste no JSON ou na saída.

O payload fica no navegador durante o passo JSON para XML

A conversão é JavaScript nesta aba: o navegador interpreta o JSON, um pequeno escritor produz o XML, e nenhuma requisição carrega o documento a lugar nenhum. Não há cadastro, fila nem limite diário, e o nível gratuito aceita até 100 MB.

Para esse público isso costuma ser o fator decisivo em vez de um detalhe. Os payloads que precisam virar XML são pagamentos, sinistros, declarações fiscais e registros de cliente — exatamente as categorias onde colar um arquivo num serviço web desconhecido é motivo de preocupação com LGPD.

Como converter JSON para XML

  1. Solte o seu arquivo JSON nesta página, ou clique para escolher um.
  2. Escolha XML como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo XML pronto.

JSON ou XML: o que muda

JSON comparado com XML
JSONXML
Nome completoJavaScript Object NotationExtensible Markup Language
Extensão do arquivo.json.xml
Tipo de mídiaapplication/jsonapplication/xml
Publicado pela primeira vez20011998
Publicado porW3C
EspecificaçãoRFC 8259XML 1.0
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorTodos os navegadoresTodos os navegadores
Considerado no lugarYAML, NDJSONYAML

O que se mantém

Nada é descartado. JSON e XML guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.

Abrir o resultado

Visual Studio Code lê tanto JSON quanto XML, então dá para comparar o resultado com o original sem um segundo programa.

Para que serve cada formato

JSON foi publicado em 2001. Está descrito em RFC 8259, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.

XML vem da W3C é de 1998, descrito em XML 1.0. Visual Studio Code e oXygen XML Editor leem o formato.

De JSON para XML: perguntas frequentes

Meu arquivo JSON é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.

Converter JSON para XML é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.

Perde qualidade ao converter JSON para XML?

Não. XML guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original.

A conversão de JSON para XML é sem perda?

Nada é descartado. JSON e XML guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.

Não tem certeza de qual você precisa?

Esta página converte um no outro. Se a sua dúvida é escolher e não converter, JSON vs XML responde qual usar, para quê, e no que cada um é ruim.

Mais sobre esses formatos