Como usar
- Cole o XML em XML. Ele é conferido primeiro, e um problema aparece com a sua linha e coluna.
- Mantenha Ler números, true e false como valores marcada para obter 12.5 como número, ou desmarque-a para manter todo o texto como texto.
- Escolha uma Indentação, ou Sem quebras de linha (minificado) para o JSON mais curto.
- Copie o JSON, ou baixe-o como converted.json.
O mapeamento, regra por regra
O elemento raiz vira o único membro do objeto JSON, então uma raiz chamada catalog dá um membro catalog. Um atributo vira um membro cujo nome começa com @, como @id. O texto de um elemento vira o seu valor quando o elemento não tem mais nada; quando ele também tem elementos filhos, vira o membro #text, sem os espaços em branco em volta.
Um elemento filho vira um membro com o seu nome. Quando o mesmo nome aparece mais de uma vez, os membros viram um array na ordem do documento. Um elemento sem atributos e sem filhos é null quando é escrito como elemento autofechado (uma barra no fim da tag), e uma string vazia quando é escrito com uma tag de início e uma de fim.
- Seções CDATA contam como texto, exatamente como escritas, então um caractere < dentro delas continua sendo um <.
- Comentários e instruções de processamento são deixados de fora, porque o JSON não tem lugar para eles.
- Referências como & e A são lidas, então o texto guarda os caracteres que elas representam.
Valores tipados e o que mudam
O XML não tem números nem booleanos próprios: 12.5 em XML é só texto. Com a opção de tipar ligada, um texto que um número, true ou false do JSON devolveria exatamente é lido como esse valor. Um texto como 12.50 ou 007 continua texto, porque um número o escreveria de outro jeito.
Uma lista com um item volta como o próprio item, e não como array, porque o XML não distingue os dois. Tenha isso em mente quando o JSON for lido por um programa que espera um array.
Exemplo resolvido: o catálogo padrão
O XML padrão é um catálogo com dois livros. O primeiro livro tem um atributo id, e os seus elementos title, price e inStock viram chaves. O segundo livro não tem o elemento inStock, e o seu elemento price vazio vira null.
O JSON tem um membro, catalog, e a sua chave book é um array de dois objetos. A contagem mostra 8 elementos: o catálogo, os dois livros e os seus filhos.
Perguntas frequentes
Por que o meu número aparece como texto?
Um texto que um número JSON não escreveria de volta exatamente continua texto: 12.50 mantém o zero, e 007 mantém os zeros à esquerda. Desligue a opção de tipar para manter cada valor como texto.
Por que um elemento é um objeto e não um array?
Um array só é criado quando o mesmo nome aparece duas vezes ou mais entre os filhos de um elemento. Um elemento único sai como o seu valor, que é o resultado usual no XML.
O que acontece com os comentários e as instruções de processamento?
Eles são deixados de fora. O JSON não tem lugar para um comentário, então o conversor lê só os dados. Guarde o XML se os comentários importarem para você.
Por que o conversor informa uma linha e uma coluna?
O XML precisa estar bem formado antes de ser lido. A linha e a coluna mostram o primeiro ponto em que o documento quebra as regras do XML, como uma tag de fechamento que não corresponde à de abertura.
O meu XML é enviado para algum servidor?
Não. A conversão roda no seu navegador. Nada do que você cola é enviado para o nosso servidor nem guardado lá.
Fontes
- W3C (em inglês): Extensible Markup Language (XML) 1.0, Fifth Edition
- RFC 8259 (em inglês): The JavaScript Object Notation (JSON) Data Interchange Format
Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.