O que esta ferramenta faz
Cada elemento vira uma chave; seus filhos viram o valor.
<user id="1"><name>Ada</name></user>
{ "user": { "name": "Ada", "@_id": "1" } }
Três pontos em que os modelos divergem
XML e JSON não descrevem as mesmas formas, e todo conversor precisa escolher. Estas são as escolhas.
Os atributos
Viram chaves com prefixo @_. JSON tem um só tipo de membro; XML tem atributos e elementos, e eles podem ter o mesmo nome — <user id="1"><id>2</id></user> guarda duas coisas distintas chamadas id. O prefixo as separa. Uma opção descarta os atributos se você não precisar deles.
Quando um elemento carrega texto e atributos ao mesmo tempo, o texto fica sob #text.
A repetição
Um <item> dá um objeto. Dois dão um array.
<r><i>1</i></r> → { "r": { "i": 1 } }
<r><i>1</i><i>2</i></r> → { "r": { "i": [1, 2] } }
Não é um defeito corrigível: nada num documento XML diz se um elemento é repetível. Só um esquema sabe. Se o seu código espera uma lista, normalize na chegada.
O conteúdo misto
Este o JSON simplesmente não consegue exprimir, e é melhor dizê-lo sem rodeios.
<p>Olá <b>mundo</b> de novo</p>
O JSON não tem como dizer que Olá vinha antes de <b> e de novo depois. Os trechos de texto são reunidos sob #text e a posição deles em relação aos elementos se perde, junto com o espaçamento entre eles. Se o que importa é o texto — um documento, não um registro —, não converta: use o formatador XML.
Os tipos
<a>1</a> dá o número 1. <a>007</a> dá a string "007", porque um zero à esquerda costuma ser um CEP ou um número de conta, e lê-lo como sete o perde. Um identificador de vinte dígitos também continua string: um número JSON o arredondaria.
O que não é dado
A declaração XML e qualquer instrução de processamento são descartadas. Elas descrevem o documento, não o conteúdo — uma chave ?xml ao lado do seu elemento raiz nunca foi informação que você pediu.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.