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 a JSON e 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 idiomas 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 versus XML

O XML representa os dados em um padrão de árvore, enquanto o JSON usa pares de valores-chave. 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 versus 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 é mais útil para seu caso de uso.

História

O XML Working Group concebeu 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 valores-chave 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 à 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 (pai) 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 com suporte

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 oferece suporte a tipos de dados complexos, como dados binários e carimbo de 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 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 versus 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ível por máquinas. Ele também tem um conjunto mais maduro de ferramentas e bibliotecas e pode funcionar melhor com sistemas herdados.

 

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 a troca de dados.

Resumo das diferenças: JSON versus XML

 

JSON

XML

Significa

JSON é a abreviação de JavaScript Object Notation (Notação de objeto JavaScript).

XML é a abreviação de Extensible Markup Language (Linguagem de marcação extensível). 

História

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

O Grupo de trabalho XML lançou o XML em 1998.

Formato

O JSON usa uma estrutura semelhante a um mapa com pares de valores-chave.

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

Syntax

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, cadeias de caracteres 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 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 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. Aqui estão 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 análise, 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 o 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.