XML para JSON

Cole o XML de uma API SOAP, de um feed RSS ou de uma exportação e receba JSON pronto para usar em JavaScript.

Nível 0 · navegador · ilimitado
164 caracteres
Saída
{
  "livro": {
    "@id": 42,
    "@idioma": "pt",
    "titulo": "Dom Casmurro",
    "autor": "Machado de Assis",
    "tag": [
      "romance",
      "clássico"
    ],
    "preco": {
      "@moeda": "BRL",
      "#text": 39.9
    }
  }
}

Como o XML vira JSON

O XML tem coisas que o JSON não tem: atributos, texto misturado com elementos, elementos repetidos sem uma lista em volta. Todo conversor precisa escolher um mapeamento. Este usa a convenção mais comum, a mesma de muitas bibliotecas:

  • cada elemento vira uma chave com o seu nome;
  • atributos viram chaves com o prefixo @;
  • um elemento só com texto vira esse texto, e um com atributos e texto ganha a chave #text;
  • um elemento que aparece mais de uma vez dentro do mesmo pai vira um array.

Números e true/false em textos e atributos viram tipos JSON; o resto continua string.

Exemplo resolvido

<livro id="42" idioma="pt"><titulo>Dom Casmurro</titulo><autor>Machado de Assis</autor><tag>romance</tag><tag>clássico</tag></livro>

vira {"livro": {"@id": 42, "@idioma": "pt", "titulo": "Dom Casmurro", "autor": "Machado de Assis", "tag": ["romance", "clássico"]}}, em várias linhas na página.

Como funciona

A página confere se o XML está bem formado enquanto o divide em tokens e monta o JSON com uma pilha: cada tag de abertura abre um objeto, atributos entram como chaves @nome, texto e CDATA são decodificados e entram como #text, e cada tag de fechamento liga o objeto pronto ao pai, transformando nomes repetidos em arrays. Objetos só com texto viram o próprio texto. Comentários, a declaração XML e o DOCTYPE são descartados. Use JSON para XML no caminho inverso. Tudo roda nesta aba.

Perguntas frequentes

Por que um elemento vira array e outro vira objeto?

Elementos que aparecem várias vezes no mesmo pai viram arrays; os únicos, não. É o mapeamento usual, então trate as duas formas no código.

Como aparecem os atributos?

Como chaves que começam com @, por exemplo @id.

E os namespaces?

O prefixo fica na chave, como nfe:infNFe. As declarações de namespace aparecem como atributos @xmlns.

Meu XML é enviado?

Não. Tudo roda no navegador.

Fontes

Revisado em 17 de out. de 2026 · vetores de teste fixtures/dev/xml-to-json/