Ir para o conteúdo

Converter XML em JSON

Transforme um documento XML em JSON com atributos como chaves @, elementos repetidos como arrays e números tipados, usando o parser de XML do próprio navegador, no seu dispositivo.

Converter para
Solte um arquivo XMLXML até 100 MB · JSON, CSV, XLSX, XLS, ODS até 500 MB
Escolher arquivoProcessado no seu dispositivo – nada é enviado
Roda no seu navegador · sem uploadComo funciona

Como usar: XML para JSON

  1. 1

    Cole ou solte o XML

    Um arquivo .xml, um feed RSS ou Atom, uma resposta SOAP ou qualquer texto XML; a codificação informada na declaração é respeitada.

  2. 2

    Defina o formato do JSON

    Atributos como chaves @, chaves simples ou nenhum; arrays só para elementos repetidos ou em todos os casos; números com tipo ou mantidos como texto.

  3. 3

    Copie o JSON

    Formatado ou compacto: copie para a área de transferência ou baixe o arquivo .json.

Limites e Pro

Arquivos XML de até 100 MB, e XML colado de qualquer tamanho que o seu navegador consiga comportar.

Sobre: XML para JSON

Converter XML em JSON é útil quando uma API, um portal do governo ou uma integração antiga entrega XML e o seu código precisa de JSON. O elemento raiz do documento vira a única chave de nível superior, cada elemento filho vira uma propriedade, e um elemento que aparece várias vezes dentro do mesmo pai vira um array, na ordem do documento.

Os atributos exigem uma decisão, porque o JSON não tem nada equivalente. O padrão é escrevê-los como chaves iniciadas por @: <price currency="UZS">125000</price> vira {"@currency": "UZS", "#text": 125000}. Assim, atributos e elementos filhos ficam separados e o JSON pode ser convertido de volta para o mesmo XML. Chaves simples geram objetos mais curtos; omitir os atributos é a melhor opção para documentos que os usam apenas para controle interno.

Valores: com a detecção de tipos ativada, 42 e 3.5 viram números JSON e true/false viram booleanos, mas tudo o que mudaria se fosse lido como número continua como string, como CEPs e números de conta com zeros à esquerda e números com mais de 15 dígitos. Elementos vazios viram strings vazias.

Os namespaces são mantidos como foram escritos (dc:title), ou os prefixos podem ser removidos para deixar as chaves mais limpas, o que também elimina as declarações xmlns. A opção "Sempre usar arrays" dá a todos os elementos filhos o mesmo formato de array, o que ajuda quando alguns registros têm um autor e outros têm três.

O que não é mantido: comentários, instruções de processamento e o DOCTYPE; textos misturados com tags em linha, como em parágrafos XHTML, são unidos em uma única string.

Privacidade

O XML é analisado em um worker em segundo plano desta página, sem nenhuma requisição de rede; nenhum DTD nem entidade externa é buscado e o documento nunca sai do seu dispositivo.

XML para JSON: perguntas frequentes

O que significa #text no JSON?
Quando um elemento tem atributos ou elementos filhos e também texto próprio, esse texto precisa de uma chave própria; #text é a convenção mais comum. <title lang="en">Guide</title> vira {"@lang": "en", "#text": "Guide"}. Já um elemento que tem só texto vira um valor simples, então <title>Guide</title> fica apenas "title": "Guide".
Os números são convertidos ou ficam como string?
Com “Detectar números e true/false” ativado, valores que são claramente números ou booleanos recebem tipos JSON. Valores com zeros à esquerda, como 007 ou um CEP, e números com mais de 15 dígitos continuam como string, porque convertê-los em número os alteraria. Desative a detecção para manter todos os valores exatamente como texto.
Como são tratados namespaces como soap: ou dc:?
Por padrão, os prefixos continuam fazendo parte da chave: dc:title vira a chave "dc:title" e as declarações xmlns aparecem como atributos @xmlns. Ative “Remover prefixos de namespace” para obter title e omitir as declarações. Dois namespaces diferentes com o mesmo nome local passariam a dividir a mesma chave, então mantenha os prefixos quando isso importar.
Posso converter o JSON de volta para XML depois?
Sim. Na página de JSON para XML, defina o destino como XML: chaves iniciadas por @ viram atributos, #text vira o texto do elemento e arrays viram elementos repetidos. A ordem dos elementos dentro de um pai pode mudar quando nomes de filhos diferentes estavam intercalados, e os comentários se perdem, mas os dados em si sobrevivem à ida e volta.
Por que aparece um erro em vez do JSON?
O XML não está bem formado, e a mensagem mostra a linha e a coluna do primeiro problema. As causas comuns são um & que deveria ser &amp;, uma tag fechada na ordem errada, um valor de atributo sem aspas ou entidades HTML como &nbsp; que o XML não define. Corrija esse ponto e cole de novo.

Outras tarefas com esta ferramenta