XML será substituido por JSON?

Renato César Lira Borges
Jaguaribe Tech
Published in
5 min readAug 18, 2017

Atualmente, muito se é discutido no momento de criar Rest-APIs. Qual a melhor forma de transferência de dados? O que eu devo utilizar? XML ou JSON? Qual desses formatos irá se encaixar melhor na minha situação? Hoje vamos conhecer um pouco sobre essas técnicas e poder entender em que situação usa-las da melhor forma. Como o JavaScript tem crescido bastante no quesito popularidade, optamos por usar JSON (JavaScript Object Notation) na maioria das vezes. Mas será que essa é a melhor opção para todas as aplicações? Primeiro, é necessário entender o que é um XML e um JSON, como são suas respectivas estruturas e suas origens.

XML

Por muitos anos a maioria das aplicações utilizavam XML para transferência de dados entre sistemas web. O principal objetivo era transferir e exibir dados e interpreta-los utilizando linguagens de programação as vezes idênticas e as vezes diferentes. O XML segue o padrão de tags. Como o próprio nome já diz (eXtensible Markup Language) é uma linguagem de marcação extensível, o qual os dados se organizam de formas hierárquicas definidos por tags e parâmetros.

Exemplo de XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
<titulo>Pão simples</titulo>
<ingredientes>
<ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente>
<ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente>
<ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente>
<ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente>
</ingredientes>
<instrucoes>
<passo>Misture todos os ingredientes, e dissolva bem.</passo>
<passo>Cubra com um pano e deixe por uma hora em um local morno.</passo>
<passo>Misture novamente, coloque numa bandeja e asse num forno.</passo>
</instrucoes>
</receita>

De acordo com Adam duVander, em seu artigo, 1 in 5 APIs Say “Bye XML”, o XML ocupava mais de 90% das aplicações no ano de 2009, porém com a popularização do Javascript acabou perdendo muito peso no mercado, por ser menos maleável que o JSON. Porém o XML não sumiu, como alegam alguns profissionais, o mesmo possui algumas vantagens em relação ao JSON que o mantem até hoje. De toda forma não se mata uma comunidade que ocupava quase 100% do mercado com tanta rapidez.

Quando a complexidade dos dados aumentam, o XML é a melhor alternativa tendo um recurso insubstituível que são os metadados. O JSON pode ser mais fácil de se manejar e menos criterioso na sua criação, porém quando se trata de dados complexos a forma em árvore do XML se desenvolve melhor e, sua legibilidade, seguindo padrões de hierarquia utilizando suas tags, dão uma legibilidade muito maior.

Vantagens:

  • A utilização de marcações remove algumas ambiguidades.
  • XML Schema como estrutura de validação.
  • XPath e XQuery para auxiliar na extração dos dados.
  • Suporta namespaces.

Desvantagens:

  • Uma resposta muito mais extensa que o JSON para representar os mesmos dados.

Curiosidades:

Existem diversas linguagens baseadas no XML, uma bastante conhecida é a SVG. No entanto, existem diversas como XHTML (formato para páginas Web), RDF, SDMX, SMIL, MathMl (formato para expressões matemáticas). O XML é uma recomendação da W3C para criar linguagens de marcação, para necessidades especiais.

JSON

O JSON como já foi muito dito é bastante maleável e sua estrutura segue o padrão chave-valor, onde é definido seu tipo na chave e o no valor, o dado em si. No começo poucas linguagens davam suporte para esse tipo de dado, porém a medida que o tempo foi a passando ele foi se desenvolvendo não só as linguagens mais populares como a maioria das linguagens já dão suporte na manipulação de JSON.

Como é bem mais simples e prático manuseá-lo, o JSON vem substituindo, amplamente, o XML e, como a maioria dos sistemas webs não requerem uma transmissão de dados complexa, ele acaba por ser o mais adotado. Muitos o defendem dizendo que ele é muito mais rápido que o XML. De acordo com o post de Pragmateek, em “JSON vs. XML: Some hard numbers about verbosity”, realizando um benchmark para comprimir e medir arquivos, ele obteve que o XML é 84% maior que o JSON e seu tempo de compressão é 21% mais longo.

Exemplo JSON:

{
"Alunos": [
{
"id": 544,
"classe": "B"
},
{
"id": 545,
"classe": "A"
}
],
"Classes": {
"nome": "A"
},
"total_alunos": 2,
}

Utilização JSON com Python:

data = json.load(alunos)data["Alunos"][0]["id"]  // 544
data["Classes"]["nome"] // "A"
data["total_alunos"] // 2

Vantagens:

  • Sintaxe mais simples pela ausência de marcações.
  • Facilidade de manuseio com Javascript, porém possui quase o mesmo desempenho que o XML.
  • JSON Schema e Json Path facilitam ainda mais sua utilização.

Desvantagens:

  • Por ter uma sintaxe mais simples, alguns formatos de dados não são suportados.

Curiosidades:

O JSON substituiu o XML por causa das aplicações utilizando AJAX, onde se precisa de uma transferência de dados assíncrona. Algumas linguagens de alto nível aceitam o JSON como estrutura dicionário, deixando mais fácil de se tratar. A lista de linguagens suportadas incluem ActionScript, C/C++, C#, ColdFusion, Java, JavaScript, Ocaml, Perl, PHP, ASP 3.0, Python, Rebol, Ruby, Lua, Progress 4gl, Go Lang. MongoDB utiliza a estrutura assíncrona do JSON para gerar um banco de dados não relacional (NoSQL). Apesar de ser apresentado como uma estrutura o JSON é transmitido na forma de texto, onde as estruturas são definidas por chave e valor, podendo armazenar diversos tipos de estruturas. Suporta quase todos os tipos de dados menos undefined, datas e funções. Ele pode até mesmo carregar outro JSON dentro de si. No site do JSON você obtém todas as informações para criar um JSON e quais as linguagens possui suporte a essa estrutura. (Clique aqui)

Comparação

Semelhanças

  • Os dois são representados como texto.
  • São auto descritivos.
  • Conseguem representar estruturas complexas.
  • Ambos são considerados padrões de representação.
  • Multi-lingual, várias linguagens conseguem compreender.

Conforme o exposto o uso de JSON cresceu bastante, pois como é mais fácil de ser manipulado com JavaScript do que o XML. Na maior parte das aplicações não são transmitidas dados em estruturas complexas, então, o JSON nesses casos é a melhor escolha. Porém, isso não significa que o XML esteja desaparecendo, só não está se encaixando nas aplicações cotidianas. As linguagens de programação de alto nível como Python, Ruby e JavaScript se encaixam melhor na manipulação de arquivos JSON, tendo em vista que o modelo é mais flexível com ausência de uma estrutura em tags. Com o desenvolvimento de estrutura de dados não relacionais (NoSQL), o JSON ganha mais espaço ainda, sendo utilizado como um banco de dados para diversas aplicações, dando margem a estruturas bem mais flexíveis, diferente do XML.

--

--