• Categorias
    • Desenvolvimiento de software
    • Machine Learning & AI
    • Carreira de programador e dicas
    • Histórias de sucesso
  • Materiais Gratuitos
    • Calculadora CLT x PJ
    • Quiz de Front-end
    • Quiz de Mobile
    • Guia Full Stack atualizado
    • Guia de Negociação Salarial para Devs
    • Modelo de Currículo Internacional
  • Para Talentos
    • Criar perfil gratis
    • Ver vagas
  • Categorias
    • Desenvolvimiento de software
    • Machine Learning & AI
    • Carreira de programador e dicas
    • Histórias de sucesso
  • Materiais Gratuitos
    • Calculadora CLT x PJ
    • Quiz de Front-end
    • Quiz de Mobile
    • Guia Full Stack atualizado
    • Guia de Negociação Salarial para Devs
    • Modelo de Currículo Internacional
  • Para Talentos
    • Criar perfil gratis
    • Ver vagas

Início XML vs JSON: Entenda como fazer a melhor escolha

  • Foto de GeekHunter GeekHunter
  • setembro 4, 2024
xml-x-jason-como-escolher

XML vs JSON: Entenda como fazer a melhor escolha

Json vs XML: quem vence essa?

Bem, XML salvou a vida de desenvolvedores por anos a fio. Graças a ele, pudemos ter um lugarzinho especial de compartilhamento de todo tipo de informações entre sistemas, sem depender da linguagem em que estes eram implementados.

O tempo passou e ele acabou sumindo aos poucos, até que as perguntas surgiram: por onde ele anda? Quem é esse tal JSON?

O que é JSON?

O JSON (JavaScript Object Notation) é um formato leve de troca de informações entre sistemas, principalmente por meio de APIs Rest.

Por ser muito leve e fácil de ler, o JSON é amplamente utilizado por aplicações web. Sua capacidade de estruturar informações de maneira compacta é uma característica fundamental que o leva a ser adotado por grandes empresas como Google e Yahoo.

Devido a essa grande popularidade, o JSON já se tornou quase um pré-requisito para qualquer programador. Toda pessoa que trabalha ou deseja trabalhar como desenvolvedor de softwares precisa entender o que ele é e como funciona.

Uma confusão muito comum que se faz é assumir que, por ser um formato de representação de dados que se baseia em JavaScript, o JSON só pode ser usado com essa linguagem. Não é assim que funciona, a possibilidade de uso dele é muito abrangente.

Inclusive, para a maioria das linguagens, são disponibilizados vários parsers diferentes e cada empresa pode implementar seus próprios parsers, com fundamentos distintos.

>>Leitura Recomendada:
IDE para JSON e PHP: qual a ideal?

A popularidade do JavaScript

Engana-se quem acha que o XML morreu. Ele ainda está ativo e é válido em várias situações, conforme veremos a seguir. Contudo, sua popularidade realmente diminuiu bastante, muito pelo sucesso de outra linguagem: o JavaScript.

O JS é quase uma unanimidade no mundo web, que basicamente movimenta nosso padrão de vida atual. Quem vive hoje em dia sem visitar um site, acessar o WhatsApp ou visitar seu perfil do Facebook?

Com a presença massiva da internet em nosso cotidiano, precisamos acessar informações de forma rápida e eficiente, e é aí que entra a linguagem.

Por ser leve e flexível, o JavaScript é usado em inúmeros sites, seja no lado do cliente ou do servidor, com o Node.js.

Com tanta fama, o JSON (ou JavaScript Object Notation) acabou se tornando uma escolha natural (e preferível) para assumir a vaga, por ser um formato desenvolvido a partir da linguagem – consequentemente, sua interoperabilidade com o JS é a melhor possível.

É por isso que o tema de hoje é XML vs JSON. A eficácia comprovada do XML, ou a tecnologia crescente do JSON? É o que veremos a seguir. 

Em 2011, 20% das novas APIs usavam apenas JSON, um número que certamente aumentou de lá pra cá. Além disso, APIs que utilizavam protocolos tipo SOAP e XML-RPC, baseados em XML, têm dado lugar à flexibilidade da arquitetura REST, que utiliza as duas notações.

>>Leitura Recomendada:
Leia nosso guia de linguagem JavaScript para iniciantes

JSON vs XML: o duelo

Tanta popularidade em torno desse ambiente com o JavaScript como grande ponto central fortaleceu comunidades empenhadas a melhorar todas as tecnologias periféricas.

Da mesma forma que o Node.js tem hoje uma capacidade computacional impressionante, o JSON conseguiu desenvolver-se da mesma forma.

Com isso, grandes vantagens que o XML possuía em comparação ao JSON tem caído aos poucos.

Exemplos disso são os XML Schemas, as transformações XSLT e o XPath, que já possuem tecnologias equivalentes no JSON – JSON Schema, JOLT e JSONPath, respectivamente.

A integração com outros ambientes de desenvolvimento também deixou de ser problema. Embora JSON se encaixe muito bem com o JavaScript (e com Python), isso não era necessariamente verdade em outras linguagens.

Porém, a notação hoje conta com centenas de ferramentas de integração em C++, Perl, R e tantas outras linguagens, encontradas facilmente na página oficial do formato.

XML ainda vive

Por outro lado, a galera do XML ainda permanece forte. Afinal, depois de tantos anos na hegemonia, uma comunidade inteira não desaparece da noite pro dia, não é?

Suas tecnologias também são bem consolidadas, a exemplo dos próprios Schemas que, com o uso dos namespaces, ainda são uma ferramenta bem poderosa na hora da implementação.

Eles são excelentes, por exemplo, em resolver conflitos causados por diversas aplicações. Claro, o JSON possui uma alternativa: o JSON-LD pode ajudar em algumas ocasiões, mas o XML ainda parece ser uma preferência em casos complexos.

No entanto, o principal destaque do XML (e que nem o JSON-LD consegue aliviar completamente) são os metadados. O poder da linguagem está justamente na capacidade de guardar ou vincular dados em qualquer formato, graças à liberdade dada ao usuário de definir suas marcações.

Assim, uma das formas é usar atributos a fim de definir metadados, tipo um identificador único ou um tipo definido pelo desenvolvedor a um objeto, por exemplo. Esse tipo de abstração é complicado de ser atingido por outras notações, como YAML, JSON ou Simple Outline XML.

>>Leitura Recomendada:
Sua API não é RESTful: Entenda por quê.

JSON: quanto mais simples melhor

computador com código de json

Tentar suprir as necessidades resolvidas pelo XML, inclusive, é um dos grandes dilemas a respeito do JSON. O objetivo da notação é entregar uma solução simples de ser lida, leve e rápida.

Ao tentar preencher as lacunas já preenchidas pelo XML, a filosofia “keep it simple” acaba de fora da tecnologia. Isso influencia diretamente os próprios aspectos já citados em que ela leva vantagem, como legibilidade e performance.

Ambos os lados alegam que suas partes são mais fáceis de entender, e eles não estão errados.

No caso de um número baixo de dados, o JSON e seu pareamento chave-valor torna claro o objeto a ser tratado, porém, quando começamos a perceber um grande volume de valores complexos, a estrutura em árvore do XML, embora cheia de palavras e repetições, torna as coisas menos difíceis de entender, em comparação com a infinidade de chaves e parênteses que o JSON precisaria ao denotar a mesma situação.

Nesse caso, a própria compressão dos arquivos (e seu consequente peso na transmissão dos dados) também é afetada. Um estudo feito por David Lee, engenheiro líder na Marklogic, e publicado pelo consultor de TI Jan Stenberg no site InfoQ Brasil levou a conclusões interessantes:

  • A velocidade de análise (parsing) varia de acordo com a técnica usada. A análise com JavaScript puro é mais rápida para XML do que para o JSON, enquanto a consulta é normalmente mais rápida para o JSON. Ambos apresentando exceções, em que o contrário é verdadeiro;
  • O uso da biblioteca JavaScript jQuery impõe uma penalidade exagerada para o JSON, e pior ainda para o XML;
  • Documentos compactados em todos os formatos, mesmo representações muito grandes em JSON ou XML apresentam tamanho idêntico após a compressão, o que indica que ambos possuem o mesmo conteúdo de informação;
  • A transferência de documentos para uma grande variedade de dispositivos leva efetivamente o mesmo tempo em cada dispositivo, independentemente do formato adotado (XML ou JSON).

Outro a fazer essa comparação de desempenho, com foco em Web APIs, foi o brasileiro Nickolas Silva. Com base em seus testes feitos utilizando compactação gzip e deflate, ele chegou às seguintes ideias:

  • Ambos possuem vantagens semânticas, estéticas e de implementação.
  • Tratando-se de transporte, JSON possui uma pequena vantagem para poucos registros, mas, conforme o número de registros cresce, maior a vantagem da marcação XML.
  • XML vs JSON: Em complexidade, as duas possuem a mesma capacidade: XML com sua estrutura de árvore e DTD, e JSON com sua especificação JSON-LD.
  • A manipulação, mesmo sendo uma ideia muito subjetiva, aparenta ser mais simples para JSON, pois se baseia na estrutura chave-valor em vez da estrutura de árvore, muito mais complexa de interpretação (sob aspecto de uma estrutura lógica).
  • Estamos num período em que se faz comum a programação de alto nível – como JavaScript, PHP, Java – e podemos contar com frameworks que abstraem e facilitam estes procedimentos.

JSON vs XML: afinal, qual usar?

Quer atualizar seu sistema para o formato? Muita calma nessa hora! Segundo o famoso escritor Nelson Rodrigues, “toda unanimidade é burra. Quem pensa com a unanimidade não precisa pensar”.

Com essa ideia, é importante ressaltar: não é porque o JSON virou tendência que ele é sempre a melhor solução.

Um software que funciona muito bem com requisições SOAP, por exemplo, mesmo que comece a ser considerado “antiquado”, ainda exige o XML e pode trazer muita dor de cabeça na sua tentativa de mudar as coisas.

Assim, depois de analisar os prós e contras de cada um, é o seu projeto que vai dizer qual é melhor.

Se a ideia é criar aplicações leves, rápidas, sem muitas exigências (como é geralmente o caso na web) e, principalmente, o JavaScript faz parte do dia a dia, o JSON deve facilitar muito seu trabalho.

Além disso, com o aumento no número de web designers aprendendo a linguagem para fazer mágicas em seus trabalhos, JSON acaba mais aceito por ter inicialmente melhor legibilidade.

Por outro lado, se o sistema exige uma maior complexidade de dados, com direito a uma padronização madura na validação dos mesmos e transformações frequentes, XML pode ser a melhor pedida.

Se eles precisam de uma categorização, identificação ou classificação, os metadados são mais que indicados, sem dúvidas.

No fim, o XML não está morto: sua utilização indevida é que vai por esse caminho. Longa vida ao XML (e JSON, YAML, properties…)!

Foto de GeekHunter

GeekHunter

Artigos escritos pela equipe de conteúdo da GeekHunter.
Python IDE
10 melhores IDEs e editores de código em Python para 2025
  • março 18, 2025
o que é commit
O que é Commit e como usar Commits Semânticos
  • dezembro 13, 2024
certificações em TI
10 certificações em TI muito valorizadas hoje
  • novembro 20, 2024
Consultor SAP: o que faz, salário e como se tornar um
  • março 20, 2025
brainfuck
Brainfuck: A linguagem esotérica que desafia programadores até hoje
  • junho 27, 2025
gerente de tecnologia
As principais habilidades de um gerente de tecnologia
  • junho 27, 2025
vagas de TI
Vagas de TI: como encontrar uma que combine com você?
  • junho 26, 2025
Planejamento da equipe de metodologia scrum
Metodologia Scrum: o básico que todo DEV precisa saber
  • junho 24, 2025

Gosta do conteúdo? Assine nossa Newsletter!

Desenvolvimiento de software

Brainfuck: A linguagem esotérica que desafia programadores até hoje

  • Geekhunter
  • junho 27, 2025
Carreira de programador e dicas

As principais habilidades de um gerente de tecnologia

  • Geekhunter
  • junho 27, 2025
Desenvolvimiento de software

Vagas de TI: como encontrar uma que combine com você?

  • GeekHunter
  • junho 26, 2025
Desenvolvimiento de software

Metodologia Scrum: o básico que todo DEV precisa saber

  • Geekhunter
  • junho 24, 2025
Carreira de programador e dicas

Dicas de carreira: como criar seu perfil profissional com foco na área tech

  • GeekHunter
  • junho 24, 2025
AnteriorAnteriorComeçando a praticar Código Limpo
PróximoPor que e quando atualizar o node.js: Entenda as vantagens das novas versõesPróximo

Rod. José Carlos Daux – SC
401, 4120 – km 4, Bairro Saco
Grande – Florianópolis – SC
CEP 88032-005

Para Profissionais
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
Para Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog de RHTech
  • Perguntas Frequentes
  • Login Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog de RHTech
  • Perguntas Frequentes
  • Login Empresas
A Geekhunter
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Portal LGPD
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Portal LGPD

Add Your Heading Text Here