Pular para o conteúdo principal

Qual é a diferença entre JSON e XML?

JSON e XML são representações de dados usadas na troca de dados entre aplicações. O JSON é um formato aberto de intercâmbio de dados que pode ser lido por pessoas e máquinas. O JSON é independente de qualquer linguagem de programação e é uma saída de API comum em uma ampla variedade de aplicações. O XML é uma linguagem de marcação que fornece regras para definir qualquer dado. Ele usa tags para diferenciar entre atributos de dados e dados reais. Embora os dois formatos sejam usados na troca de dados, o JSON é a opção mais nova, mais flexível e mais popular.

Leia sobre JSON »

Leia sobre XML »

Quais são as semelhanças entre o JSON e o XML?

JSON e XML são formatos de serialização de dados. Eles permitem que você troque dados entre diferentes aplicações, plataformas ou sistemas de forma padronizada.

Diferentes linguagens e plataformas de programação representam os mesmos dados de forma diferente. Por exemplo, uma aplicação Java usa um objeto de dados e uma aplicação Python usa um dicionário para armazenar informações sobre a mesma entidade do mundo real. Para trocar dados entre elas, você pode seguir as seguintes etapas:

  1. Converta o objeto Java em XML ou JSON
  2. Transmita o arquivo XML ou JSON por uma rede
  3. Reconverta XML ou JSON em dicionário Python

 

As conversões são incorporadas às bibliotecas de linguagens e isso permite que os programadores escrevam aplicações que se comunicam entre si usando APIs. Além disso, os dois formatos são autodescritivos, então você pode ler e editar arquivos JSON e XML em qualquer editor de texto.

Embora o XML seja uma tecnologia mais antiga, tanto o JSON quanto o XML ainda são comumente usados.

Representação de dados: JSON vs. XML

O XML representa os dados em um padrão de árvore, enquanto o JSON usa pares de chave/valor. Os exemplos a seguir exibem as mesmas informações nas duas representações de dados. 

Exemplo: documento JSON

O exemplo a seguir exibe os nomes de três convidados em JSON.

{"guests":[

  { "firstName":"John", "lastName":"Doe" },

  { "firstName":"María", "lastName":"García" },

  { "firstName":"Nikki", "lastName":"Wolf" }

]}

Exemplo: documento XML

O exemplo a seguir exibe os nomes de três convidados em XML.

<guests>

  <guest>

    <firstName>John</firstName> <lastName>Doe</lastName>

  </guest>

  <guest>

    <firstName>María</firstName> <lastName>García</lastName>

  </guest>

  <guest>

    <firstName>Nikki</firstName> <lastName>Wolf</lastName>

  </guest>

</guests>

Principais diferenças: JSON vs. XML

Embora o JSON e o XML tenham propósitos semelhantes, algumas diferenças fundamentais os separam. Entender essas diferenças ajudará você a decidir qual é o mais útil para seu caso de uso.

História

O XML Working Group projetou o XML em 1996 e lançou sua versão inicial em 1998. O grupo derivou o XML da Linguagem de Marcação Generalizada Padrão (SGML). Depois de introduzir o HTML em 1998, eles desenvolveram o XML como uma ferramenta de serialização de dados.

Douglas Crockford e Chip Morningstar lançaram o JSON em 2001. Eles derivaram o JSON do JavaScript.

Formato

O JSON usa pares de chave/valor para criar uma estrutura semelhante a um mapa. A chave é uma string, que identificará o par. O valor é a informação que você concede a essa chave. Por exemplo, poderíamos ter “NumberProperty”: 10. Nesse caso, “NumberProperty” é a chave e 10 é o valor.

Em contraste, o XML é uma linguagem de marcação, um subconjunto do SGML com uma estrutura semelhante ao HTML. Ele armazena dados em uma estrutura em árvore que apresenta camadas de informações que você pode acompanhar e ler. A árvore começa com um elemento raiz (principal) antes de fornecer informações sobre elementos secundários. Essa estrutura expansiva é útil para carregar muitas variáveis e configurações dinâmicas. 

Sintaxe

A sintaxe usada no JSON é mais compacta e fácil de escrever e ler. Ela permite que você defina objetos com facilidade.

O XML é mais detalhado e substitui certos caracteres por referências de entidades. Por exemplo, em vez do caractere <, o XML usa a referência da entidade &it;. O XML também usa tags finais, o que o torna mais longo do que o JSON.

Análise

Você deve analisar o XML com um analisador de XML, o que geralmente desacelera e complica o processo.

Você pode analisar o JSON por meio de uma função JavaScript padrão, que é mais acessível. Devido às diferenças de sintaxe e tamanho de arquivo, você também pode analisar o JSON mais rapidamente do que o XML.

Documentação do esquema

A documentação do esquema descreve a finalidade de um arquivo, mostrando para que você deve usá-lo.

Os documentos XML têm um link para seu esquema no cabeçalho. O esquema também está no formato XML, o que permite que você leia aquilo que deverá encontrar no arquivo. Você então pode validar o documento em relação ao esquema e verificar se tudo foi carregado corretamente e sem erros.

O JSON também permite que você use esquemas. No entanto, eles são mais simples e permitem maior flexibilidade.

Tipos de dados compatíveis

O JSON é compatível somente com uma variedade limitada de tipos de dados, como strings, números e objetos. O JSON também é compatível com matrizes booleanas, o que o XML não pode fazer sem adicionar outras tags.

No entanto, o XML é mais flexível e é compatível com tipos de dados complexos, como dados binários e carimbos de data/hora. 

Facilidade de uso

Como linguagem de marcação, o XML é mais complexo e requer uma estrutura de tags.

O JSON, ao contrário, é um formato de dados que se estende do JavaScript. Ele não usa tags, o que o torna mais compacto e mais fácil de ser lido por humanos. O JSON pode representar os mesmos dados em um tamanho de arquivo menor para uma transferência de dados mais rápida.

Segurança

A análise de JSON é mais segura do que o XML.

A estrutura do XML é vulnerável a modificações não autorizadas, o que cria um risco de segurança conhecido como injeção de entidade externa XML (XXE). Ela também é vulnerável à declaração de tipo de documento externo não estruturado (DTD). Você pode evitar esses dois problemas desativando o recurso DTD na transmissão. 

Quando usar: JSON vs. XML

Se você quiser armazenar vários tipos de dados diferentes com muitas variáveis, o XML é a melhor opção. O XML verifica erros em dados complexos com mais eficiência do que o JSON, pois o XML se concentra em armazenar dados que sejam legíveis por máquinas. Ele também tem um conjunto mais maduro de ferramentas e bibliotecas e pode funcionar melhor com sistemas legados.

 

Por outro lado, o JSON foi projetado para o intercâmbio de dados e fornece um formato mais simples e conciso. Ele também melhora a performance e a velocidade da comunicação.

O JSON geralmente é a melhor opção para APIs, aplicativos móveis e armazenamento de dados, enquanto o XML é mais adequado para estruturas de documentos complexas que exigem o intercâmbio de dados.

Resumo das diferenças: JSON vs. XML

 

JSON

XML

Significa

JSON é a abreviação de JavaScript Object Notation.

XML é a abreviação de Extensible Markup Language. 

História

Douglas Crockford e Chip Morningstar lançaram o JSON em 2001.

O XML Working Group lançou o XML em 1998.

Formato

O JSON usa uma estrutura semelhante a um mapa com pares de chave/valor.

O XML armazena dados em uma estrutura de árvore com namespaces para diferentes categorias de dados.

Sintaxe

A sintaxe do JSON é mais compacta e fácil de ler e escrever.

A sintaxe do XML substitui alguns caracteres por referências de entidades, tornando-a mais detalhada.

Análise

Você pode analisar o JSON com uma função JavaScript padrão.

Você precisa analisar o XML com um analisador de XML.

Documentação do esquema

O JSON é simples e mais flexível.

O XML é complexo e menos flexível.

Tipos de dados

O JSON é compatível com números, objetos, strings e matrizes booleanas.

O XML é compatível com todos os tipos de dados JSON, além de outros tipos como booleano, datas, imagens e namespaces.

Facilidade de uso

O JSON tem de arquivos de tamanhos menores e transmissão de dados mais rápida.

A estrutura de tags do XML é mais complexa de escrever e ler e resulta em arquivos volumosos.

Segurança

O JSON é mais seguro que o XML.

Para mitigar possíveis riscos de segurança, desative o DTD ao trabalhar com o XML.

Como a AWS pode cumprir os seus requisitos de JSON e XML?

Todos os serviços de integração de dados da AWS (Amazon Web Services) podem processar arquivos JSON e XML. Confira abaixo três serviços relevantes da AWS:

  • O AWS Glue é um serviço de integração de dados sem servidor que você pode usar para descobrir, preparar e combinar dados para analytics, machine learning e desenvolvimento de aplicações.
  • O Amazon Simple Queue Service (SQS) é um serviço de enfileiramento de mensagens totalmente gerenciado que você pode usar para enviar, armazenar e receber mensagens entre qualquer volume dos componentes de software. As mensagens do Amazon SQS podem conter até 256 KB de dados de texto, incluindo XML, JSON e texto não formatado.
  • O Amazon Kinesis facilita a coleta, o processamento e a análise de dados de streaming em tempo real. Você pode obter informações oportunas e reagir rapidamente a novas informações. Transmita, transforme e analise dados XML em tempo real com o Kinesis.

Além disso, o Amazon DocumentDB (compatível com MongoDB) é um banco de dados de documentos JSON nativo totalmente gerenciado. O Amazon DocumentDB torna fácil e econômica a operação de workloads críticas de documentos em praticamente qualquer escala, sem gerenciar a infraestrutura.

Comece a usar JSON e XML na AWS criando uma conta gratuita hoje mesmo.