1. Início
  2. Desenvolvimiento de software
  3. XML vs JSON: Entenda como fazer a melhor escolha

XML vs JSON: Entenda como fazer a melhor escolha

xml-x-jason-como-escolher

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 JSONJSON 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…)!

Quer contratar os melhores talentos tech em menos tempo?

Queremos te ajudar a contratar muito mais rápido e melhor. Podemos começar?

Leituras Recomendadas

Quer receber conteúdos incríveis como esses?

Assine nossa newsletter para ficar por dentro de todas as novidades do universo de TI e carreiras tech.