Conversor de XML para JSON
Cole XML e receba JSON, com os atributos mantidos como chaves com prefixo @ e os elementos repetidos reunidos em arrays. XML inválido é reportado com linha e coluna.
XML
JSON
Sobre esta ferramenta
XML carrega dois tipos de dado para os quais o JSON tem só um lugar: elementos filhos e atributos. Este conversor mantém os dois colocando @ na frente dos nomes de atributo, então nada se perde e os dois continuam distinguíveis. Elementos irmãos repetidos viram um array, porque JSON não consegue repetir uma chave. O documento é validado antes de ser interpretado, então uma tag descasada devolve um número de linha em vez de um objeto convertido pela metade.
Como usar
- 1Cole um documento XML no painel esquerdo.
- 2Leia o JSON à direita — os atributos aparecem como chaves @nome.
- 3Mude a saída para Árvore para recolher documentos profundos, ou clique em Copiar.
Perguntas frequentes
›O que acontece com os atributos XML?
Eles viram chaves com prefixo @ no mesmo objeto do elemento, então <user id="7"> vira { "user": { "@id": "7" } }. Nada é descartado, e dá para distinguir um atributo de um elemento filho de imediato.
›Por que meus elementos repetidos viraram um array?
Porque JSON não tem como repetir uma chave. Um <item> é um objeto; dois ou mais viram um array de objetos. Esse é o único ponto em que o mesmo schema pode gerar formatos JSON diferentes conforme os dados.
›A conversão é reversível?
Na maior parte. Elementos, atributos e texto sobrevivem à ida e volta. O que não sobrevive: comentários, instruções de processamento, as declarações de namespace enquanto tais, e a diferença entre um elemento vazio e uma string vazia.
›O que conta como XML inválido aqui?
Tags não fechadas ou descasadas, mais de um elemento raiz, < ou & soltos no texto, e valores de atributo sem aspas. O erro informa linha e coluna, para você ir direto.
›Números no XML são convertidos?
São. Texto que seja um número ou booleano válido vira número ou booleano JSON em vez de string entre aspas, que costuma ser o que você quer ao levar o resultado para o código.