JSON vs XML
Escolha JSON para payloads de API e para tudo que um navegador ou aplicativo móvel consome: menor, tipado e parseado universalmente. Escolha XML para dados com formato de documento, integração corporativa e interfaces que exigem namespaces ou validação estrita via XSD. Nenhum dos dois está obsoleto: o JSON domina a transmissão, o XML domina documentos, e os conversores desta página fazem a ponte nas duas direções.
JSON vs XML: explicação
Durante quinze anos, o XML foi a resposta padrão para praticamente toda questão envolvendo dados — serviços SOAP, feeds RSS, documentos do Office, configuração de build. Depois, o JSON tomou a camada de API quase por completo, e os dois formatos vivem desde então em uma divisão de trabalho confortável. O enquadramento de rivalidade esconde a história real: eles foram feitos para trabalhos diferentes. O XML descende do SGML e é uma linguagem de marcação para documentos; o JSON é um formato de intercâmbio de dados cuja gramática cabe em um cartão de índice. A maior parte da decepção com qualquer um deles vem de pedir que um faça o trabalho do outro.
As diferenças do dia a dia são concretas. O XML marca cada valor com uma tag de abertura e uma de fechamento, o que praticamente dobra a marcação por campo; o JSON envolve os valores entre aspas e vírgulas. O XML é tipado como string — tudo é texto até que um schema diga o contrário — enquanto o JSON declara números, booleanos e null na própria sintaxe. O XML tem atributos, namespaces e conteúdo misto; o JSON tem chaves, arrays e nada disso. Cada uma dessas decisões se propaga para schemas, ferramentas e tamanho do payload.
Esta página mantém a comparação onde ela morde de verdade: sintaxe e o imposto das tags, tipagem, schemas e namespaces, tamanho e streaming. Quando você precisar cruzar de um para o outro, há conversores nas duas direções neste site — e, como tudo por aqui, eles fazem o parse e a emissão inteiramente no seu navegador.
Precisa entregar um payload JSON a um sistema que só entende XML? O conversor de JSON para XML mapeia chaves e arrays para elementos no seu navegador — nada é enviado.
Herdou um feed legado ou uma resposta SOAP? O conversor de XML para JSON reconstrói tudo como JSON localmente, antes que seu código precise tocar em uma tag.
Origens: uma linguagem de marcação versus um formato de dados
O ancestral do XML é o SGML, e seu objetivo de design era marcar documentos: prosa que mistura parágrafos, ênfase e estrutura. É por isso que o XML, sozinho entre os dois, suporta conteúdo misto — texto com marcação inline como <title>Learning <em>XML</em></title> — e por isso ganhou atributos, referências a entidades e um modelo de processamento pesado. O JSON foi extraído dos literais de objeto do JavaScript por volta de 2001 com um único propósito: mover dados estruturados entre programas com a menor gramática possível. No JSON não há conteúdo misto, nem maquinaria de entidades, nem árvore de documento — objetos, arrays e quatro tipos escalares são o universo inteiro.
Sintaxe: o imposto das tags, atributos e o array que falta
Todo elemento XML abre e fecha, então um valor simples custa duas tags: <price>19.99</price>. O XML oferece uma grafia alternativa — <price currency="EUR">19.99</price> — e a escolha entre atributo e elemento gera debate há duas décadas sem uma resposta universal. O JSON tem exatamente uma grafia para um par chave/valor e uma para uma lista. O mais importante: o JSON tem arrays nativos; o XML não tem tipo de array algum. Uma lista é expressa repetindo um elemento, o que significa que toda ferramenta de JSON para XML precisa concordar com uma convenção para nomear e agrupar itens repetidos.
| Aspecto | JSON | XML |
|---|---|---|
| Gramática | Uma página (RFC 8259) | XML 1.0 mais namespaces, infoset e maquinaria de DTD |
| Contêineres | Objetos e arrays | Elementos; arrays são elementos repetidos |
| Tipagem | Números, booleanos e null são nativos | Todos os valores são texto até que um schema os tipifique |
| Atributos | Nenhum — uma grafia por par | Atributo ou elemento, uma escolha permanente |
| Namespaces | Nenhum; apenas convenções de prefixo | Mecanismo xmlns embutido para vocabulários combinados |
| Comentários | Nenhum, removidos por design | Sim, <!-- --> em qualquer ponto da árvore |
| Linguagem de schema | JSON Schema | XSD, DTD, Relax NG |
| Conteúdo misto | Não é expressável | Nativo — texto intercalado com marcação |
Schemas e namespaces: onde o XML ainda se justifica
O XSD é a vantagem discreta do XML nas empresas: uma linguagem de schema madura, com tipos derivados, restrições de cardinalidade, facetas de padrão e duas décadas de ferramentas capazes de validar um documento e relatar com precisão qual elemento violou qual regra. O JSON Schema persegue o mesmo objetivo com outra forma — é expressivo, suporta lógica condicional e se tornou a linguagem de contrato de facto para APIs modernas — mas sua longa história de rascunhos faz as ferramentas variarem mais no que aceitam. Os dois ecossistemas podem ser estritos; o do XML é simplesmente mais antigo.
Os namespaces são o outro trunfo duradouro do XML. Uma página XHTML pode incorporar SVG e MathML sem colisões de chaves porque cada vocabulário carrega seu próprio URI. O JSON não tem mecanismo equivalente — colisões de nomes são evitadas por convenção, ou por designs em camadas, como o JSON-LD, que anexam contexto explicitamente.
Tamanho, streaming e quando escolher cada um
Para os mesmos dados, payloads XML costumam ser maiores: só as tags de fechamento praticamente dobram a marcação dos elementos, e estilos cheios de atributos acrescentam mais ainda. Os dois formatos comprimem bem com gzip — a redundância do XML é altamente compressível — mas a sobrecarga base raramente desaparece por completo. Em streaming, o ecossistema de parsers do XML é mais profundo: os parsers push SAX e StAX foram projetados para documentos grandes demais para a memória, e toda plataforma traz um. Existem parsers de streaming para JSON, e são excelentes, mas o parse do documento inteiro continua sendo o padrão comum.
Escolha JSON para tudo que um par de programas troca: APIs web e móveis, logs estruturados, payloads entre serviços. Escolha XML quando uma especificação exigir — stacks SOAP, pipelines de publicação, formatos do Office, muitos padrões de saúde e finanças — ou quando você precisar de validação XSD e namespaces na transmissão. A orientação se inverte com clareza: JSON que vaza para um pipeline de documentos geralmente quer ser XML, e uma API da era SOAP que passa a expor JSON limpo é uma vitória de migração, não uma traição.
Perguntas frequentes
O JSON está substituindo o XML?
Ele desalojou o XML de um território, não de todos. O JSON hoje domina a camada de API — REST, mobile, navegador — enquanto o XML segue firme onde documentos ou padrões dominam: arquivos do Office e EPUB, gráficos SVG, empresas movidas a SOAP e especificações de publicação, saúde e finanças que o exigem. Aprender os dois continua valendo a pena; converter entre eles é rotina.
Por que o XML é maior que o JSON para os mesmos dados?
Dois motivos estruturais. Todo elemento precisa de uma tag de fechamento, então cada valor paga a marcação duas vezes, e o XML não tem array nativo — listas viram elementos repetidos com tags próprias. A compressão estreita a diferença porque tags repetidas comprimem extremamente bem com gzip, mas os tamanhos brutos divergem o suficiente para que as APIs da era móvel tenham padronizado o JSON.
Ao converter XML ou JSON aqui, meus dados são enviados?
Não. Os dois conversores fazem o parse e a emissão dentro da aba do seu navegador, sem servidor envolvido — não existe endpoint de envio, e a Content-Security-Policy do site restringe o acesso de rede a ele mesmo. Abra o painel Network do DevTools durante a conversão e você não verá nenhuma requisição de saída carregando seu payload.
Valores XML devem ficar em atributos ou em elementos filhos?
Uma regra que funciona: atributos para metadados sobre o elemento — identificadores, tipos, unidades, idioma — e elementos filhos para conteúdo, sobretudo tudo que for longo, ordenado, repetido ou já marcado. Atributos não podem se repetir, não comportam estrutura e ficam invisíveis para conteúdo misto, razão pela qual qualquer lista de coisas precisa ser elementos.
A validação XSD é mais forte que a do JSON Schema?
Mais forte em maturidade, não em princípio. O XSD tem vinte anos de ferramentas estáveis, tipos derivados e regras estritas de sequenciamento das quais as empresas dependem. O JSON Schema é expressivo — condições, propriedades com padrão, definições reutilizáveis — e dominante nos contratos de APIs modernas. Escolha aquele com que sua cadeia de ferramentas já valida; trocar de formato não elimina a necessidade de um schema.
Como arrays JSON viram elementos XML?
Como o XML não tem tipo de array, os conversores mapeiam um array para elementos filhos repetidos sob um wrapper ou para irmãos que compartilham o mesmo nome — a convenção varia conforme a ferramenta e importa muito em conversões de ida e volta. Os conversores deste site documentam o mapeamento exato que usam, então um documento que passa pelas duas direções continua previsível.
Onde posso ler os padrões citados aqui?
Quais ferramentas relacionadas devo usar a seguir?
- Converter JSON em XMLConverte com atributos e nomes que o XML aceitaAbrir
- Converter XML em JSONConverte sem perder atributos nem listas de um itemAbrir
- Formatar JSONIndenta, ordena chaves e remove comentáriosAbrir
- Validar JSONAponta o erro com linha e coluna e corrige num cliqueAbrir
- O que é JSONGuia em linguagem simplesAbrir
- Ferramentas JSONCompare, formate, valide e explore documentos JSON.Abrir