Pular para o conteúdo principal
PulsarKit

Converter JSON para XML

Monte um documento XML válido a partir de JSON: você dá nome às tags raiz e de item, e as chaves que o XML não aceita são corrigidas, em vez de descartadas.

Solte seus arquivos aqui

.json, .ndjson, .txt · até 300 MB

Mais configurações

Como Converter para XML

  1. 1

    Solte um arquivo JSON

    Adicione um arquivo ou até vinte. O texto é lido e analisado nesta aba do navegador, e um erro de sintaxe aponta a linha e a coluna exatas.

  2. 2

    Dê nome às tags raiz e de item

    A raiz envolve o documento inteiro; o nome de item se repete em cada entrada de um array. As chaves que começam com o prefixo de atributo viram atributos.

  3. 3

    Converta e baixe o XML

    Clique no botão para receber um documento indentado e com declaração XML. Um lote volta como um único arquivo ZIP.

Chaves que o XML não aceita como nome de tag

As chaves de objeto JSON quase não têm restrições; os nomes de elemento XML têm. “2024 sales”, “order id” e a string vazia são chaves válidas, e nenhuma delas pode ser escrita como tag. Descartar esses campos em silêncio faria perder dados. Por isso, os caracteres inválidos viram sublinhados, um nome que começa com dígito ganha um n na frente, e a lista completa do que era e do que virou é entregue junto com o resultado.

Caracteres que o XML não permite de forma alguma

O escape resolve o & e os sinais < e >. Os caracteres de controle abaixo de 0x20 são outro problema: o XML 1.0 os rejeita, seja qual for a forma de escrevê-los, e nem uma entidade nem um bloco CDATA os salva. Um único 0x0B perdido, colado de uma célula de planilha, deixaria o documento inteiro impossível de ler. Por isso, esses bytes são removidos e contados, e a contagem aparece ao lado do resultado.

Atributos, nós de texto e valores null

Uma chave que começa com o prefixo de atributo, @_ por padrão, vira atributo do elemento pai, em vez de elemento filho, e a chave de texto leva o texto do próprio elemento. O JSON tem null e o XML não tem equivalente, então a escolha é sua: um elemento vazio, um elemento marcado com xsi:nil ou nenhum elemento.

O arquivo não sai desta aba

A leitura do arquivo, a análise do JSON, a correção dos nomes e a serialização do XML acontecem no seu navegador, em um worker (processo em segundo plano), com o código que veio junto com a página. Não há etapa de upload, fila de processamento nem conta. Feche a aba, e o arquivo some, porque nenhuma cópia dele foi feita em outro lugar.

Perguntas frequentes

Como definir o nome do elemento raiz?

O nome da raiz é o primeiro campo da página e, por padrão, é root. Ele precisa ser um nome XML válido (letras, dígitos, pontos, hifens e sublinhados, sem começar com dígito nem com o prefixo reservado xml). Se não for, você é avisado imediatamente e recebe uma sugestão de correção.

Como transformar uma chave JSON em atributo XML?

Coloque @_ na frente da chave no seu JSON, e ela vira atributo do elemento que a contém, em vez de uma tag aninhada. O prefixo pode ser configurado, com até três caracteres. Deixar o campo vazio desativa por completo o mapeamento de atributos, e então toda chave vira elemento.

O que acontece com chaves que não são nomes de tag XML válidos?

Por padrão, elas são corrigidas: caracteres inválidos viram sublinhados, um dígito no início ganha o prefixo n, e uma chave vazia passa a usar o nome de item. Você recebe um aviso com a lista do que foi renomeado. Também é possível aplicar todas as correções sem aviso, ou parar com um erro na primeira chave inválida.

O que acontece com os valores null?

Há três opções. Um elemento vazio mantém o campo visível no documento. O xsi:nil marca o campo como null explícito, do jeito que os sistemas que trabalham com schema esperam, e declara o namespace na raiz. E omitir deixa o campo de fora. Elementos vazios são o padrão porque são os mais previsíveis na conversão de ida e volta.

Quando preciso de CDATA?

Raramente, porque o escape comum está sempre correto. O CDATA serve mais para facilitar a leitura quando os valores têm muito texto parecido com marcação: ative a opção, e os textos com mais de 200 caracteres, ou com os sinais < e > e o &, vão para um bloco CDATA. Um ]]> literal dentro desse valor é dividido em dois blocos, para que a saída continue válida.

A ordem das chaves é mantida?

Sim. Os elementos são escritos na ordem em que as chaves aparecem no JSON de origem, e as entradas dos arrays mantêm a ordem dos índices. Os atributos vêm antes dos elementos filhos porque o XML exige isso, mas entre si também seguem a ordem de origem. Assim, a saída fica estável o bastante para comparar com diff entre uma execução e outra.

Meu arquivo é enviado para algum lugar?

Não. Tudo acontece na aba do seu navegador, e o analisador de JSON e o serializador de XML fazem parte da página, não de um serviço em algum lugar. Não existe servidor que possa receber o arquivo, então nada é armazenado, registrado ou mantido depois que você fecha a aba.

Ferramentas relacionadas