JSON vs XML: Quem Leva a Melhor?

James Clark, responsável técnico das atividades relacionadas ao formato XML do World Wide Web Consortium, publicou um post recentemente sobre a concorrência percebida entre os formatos JSON e XML. Recentemente o Twitter e o Foursquare deixaram o suporte XML de lado para utilizar exclusivamente a JSON. James diz não acreditar na “extinção” do XML, mas a enxerga cada vez menos como uma tecnologia web. “Acho que a comunidade web escolheu,” James conclui. “E está claro que o que ela quer HTML5, JavaScript e JSON.” James cita alguns motivos particulares do por que a JSON está seduzindo os desenvolvedores web.

  • A JSON tem uma especificação mais simples.
  • A JSON lida com conteúdo misto adequadamente (Isso não quer dizer que o XML lida inadequadamente com conteúdo misto, apenas que o suporte mínimo ao conteúdo misto da JSON não é um estraga prazer).
  • O XML aparenta ser muito focado no mercado corporativo.

No entanto, James lamenta o fato de que a comunidade web vai perder o poder da XML. Ele sugere que o melhor caminho para a XML no futuro próximo é melhorar sua integração com o HTML5.

O que você acha? Você prefere a XML ou a JSON, ou você utiliza as duas para finalidades distintas? Qual é o futuro do XML?

17 responses to “JSON vs XML: Quem Leva a Melhor?

  1. @Humberto Com relação ao problema de banda, acho que o gzip/deflate fazem um bom trabalho. O lance é que JSON é mais legível por humanos, enquanto XML deve ser gerado por máquinas para ser consumido por máquinas, IMHO.

  2. Minha pérola predileta sobre XML é do Phillip J. Eby: “XML is not the answer. It is not even the question. To paraphrase Jamie Zawinski on regular expressions, “Some people, when confronted with a problem, think “I know, I’ll use XML.” Now they have two problems.””

  3. No entanto, James lamenta o fato de que a comunidade web vai perder o poder da XML.

    Alguém pode me responder qual, exatamente, é o poder da XML? Além, claro, de poder representar a mesma informação de 150 maneiras diferentes, e ser um saco depois pra fazer parsing disso pq vc precisa descobrir o que a pessoa quis dizer quando representou aquela estrutura com XML?

  4. XML ainda é forte no mundo corporativo, por causa de todos os legados e tentativas de integração deles via SOAP.

    JSON está com tudo nos aplicativos web atuais, e não há no momento formato melhor para tráfego de dados nesse tipo de ambiente.

  5. Sim, eu sei que ele ainda é forte por causa de SOAP, XML-RPC e até mesmo RESTful com XML.
    O ponto é, nesse caso a estrutura é o forte (ou seja, o evelope SOAP, a arquitetura RPC), não exatamente o XML… eu gostaria realmente de entender aonde está o forte do “XML”, não do “SOAP” ou do “REST”.

  6. @MaurícioSzabo, Você já viu o XML que gera um docx ou um odt? Se não, eu recomendo ver. Eu *acho* que é complicado você gerar um doc daqueles usando somente JSON. Uma pq JSON não possui schema, ou seja, qq coisa que vc colocar, da forma que vc colocar, tá valendo. E num doc com esta complexidade realmente é complicado vc deixar “livre”. Se você incluir uma tag a mais ou a menos talvez não faça diferença. Agora se deixar alguma com algum atributo obrigatório faltando ou escrito errado, o parser vai chiar.

    Sim, XML é pra burocracia mesmo. Com um schema, você obriga a todos que forem escrever no documento que siga as regras estabelecidas lá (e coloca regras para uma melhor leitura também). Muitas vezes, contar somente com convenções é algo complicado.

    Tweets e informações de geolocalização são MUITO mais simples do que um odt ou docx. Não precisam de schema nem nada. Pra que usar xml então? Só pra compatibilidade mesmo…

  7. Concordo com o Herberth, tem espaço para um formato estruturado. Mas tem uma coisa a mais que escapou da análise até agora…

    JSON é excepcional para aplicações tipo ‘key/value’, pelo simples motivo de que a notação *é* exatamente a mesma para criar hashes ou dicionários em Javascript (ou em Python ‘by the way’). É isso que torna o formato tão leve e simples.

    Já XML é uma extensão baseada em um formato criado originalmente para documentos estruturados e marcados com tags. O nome diz tudo – ‘markup language’. O fato de ser utilizado para criar estruturas ‘key/value’ é um abuso do formato original – do mesmo jeito que seria um abuso do formato JSON querer expressar documentos tagueados desse jeito. Tentei imaginar, e me deu dor de cabeça 🙂

  8. Concorso com ele… JSON é um formato leve, facil de ser implementado e eficiente em varios aspectos em que o Xml deixa a desejar. Tenho apostado em JSON a algum tempo e nao me arrependo.

  9. Legal d+, mas como especifica a codificação no JSON? Ou como eu valido um arquivo no JSON? Por exemplo, no XML eu tenho o Schema ou o DOCTYPE.

    Algumas pessoas acham difícil o XML e por isso já vão direto para o JSON. Eu não acho. O que eles poderiam fazer é melhorar o desempenho do interpretador do XML.

    Em casos como o ajax, fica claro que o JSON é melhor. Mas… ainda não estou vendo vantagens para outros tipos de aplicações.

  10. A comparação XML ou JSON não é válida… São duas tecnologias diferentes, criadas para propósitos diferentes. XML permite você estruturar os dados, criar datatypes, validações, relacionamentos, e etc. JSON não permite nada disso, em compensação, é mais leve e fácil de ler (nem tão mais fácil assim).

    Eu uso ambos… pra mim, dá na mesma no final. O PHP consegue “explodir” e “implodir” ambos com a mesma facilidade… no fim das contas, não faz diferença qual dos dois está sendo usado.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *