Ferramenta de desenvolvedor / 01

Conversor de XML para JSON

Transforme um documento XML em JSON legível, com atributos e elementos repetidos tratados de forma sensata.

Conversor de XML para JSON: TOEA lê os elementos, atributos, texto e CDATA do documento e os converte em JSON: atributos recebem o prefixo @, texto solto vira #text, e nomes de elementos irmãos repetidos viram um array. Roda 100% localmente no seu navegador, sem enviar nenhum arquivo para o servidor.

Execuções
No seu navegador
Custo
Grátis · sem cadastro
Disponibilidade
Pronto para usar
Mesa XML → JSONProcessamento local

Roda inteiramente no seu navegador

↥
Cole XML abaixo ou escolha um arquivo

Até 5 MB · nada é enviado

Tudo chega como texto

XML não tem tipos de dados; portanto, <count>42</count> se torna "42" e <active>true</active> se torna "true". Converta números e booleanos no código que lê o JSON, onde você sabe quais são os campos. O mesmo se aplica aos atributos: @id contém uma string mesmo quando parece numérico.

O código que lê o resultado também precisa lidar com elementos que se repetem apenas às vezes. Um <item> que aparece uma vez é um objeto; dois são um array. Normalize com Array.isArray(x) ? x : [x] antes de percorrer.

Documentos que não convertem bem

A conversão é adequada para dados: configurações, respostas de API, feeds e exportações. Para prosa, ela funciona mal. Em <p>Read <b>this</b> first</p>, o texto solto é reunido em um valor #text e a palavra em negrito se torna uma chave separada, o que faz a ordem de leitura se perder. XHTML, DocBook e formatos de documento semelhantes são melhor processados com uma biblioteca XML. Para inspecionar a estrutura de um documento antes de convertê-lo, indente-o com o formatador XML.

Como usar

  1. Cole o XML ou escolha um arquivo.
  2. Escolha a largura da indentação.
  3. Copie ou baixe o JSON.

Privacidade e limitações

O texto é convertido no seu navegador e nunca é enviado, o que importa quando o arquivo é uma configuração ou uma exportação que você prefere não entregar a um desconhecido. Namespaces são mantidos literalmente nos nomes dos elementos, em vez de resolvidos.

Ferramentas relacionadas

Perguntas frequentes

Por que os atributos começam com @?

XML separa atributos de elementos filhos; JSON não faz essa distinção. O prefixo @ mantém-nos separados para que a conversão possa ser revertida sem suposições.

Por que um elemento virou um array?

Nomes de elementos irmãos repetidos sempre viram um array, porque é isso que a estrutura indica. Um nome que aparece uma vez permanece um valor simples.

Para que serve #text?

Um elemento que contém texto e elementos filhos precisa de um lugar para esse texto solto, e #text é esse campo.

O que não é compatível?

Definições de entidades de DTD, resolução de namespaces e instruções de processamento além da declaração. Arquivos de configuração e payloads de API não usam isso.

Ferramenta grátis · no seu navegador execuções · não precisa de conta