Facebook pixel
>Blog>Programação
Programação

O que é Json e para que serve?

Não importa em que tipo de programa ou caso de uso, tanto desenvolvedores quanto analistas de dados precisam de uma maneira de descrever e trocar dados.

Não importa em que tipo de programa ou caso de uso, tanto desenvolvedores quanto analistas de dados precisam de uma maneira de descrever e trocar dados. E o JSON surgiu exatamente para atender e facilitar esse processo.

Formato líder quando se trata de intercâmbio de dados, esse formato baseado em JavaScript se tornou uma opção bem-sucedida para formatar e transferir informações de maneira simples e versátil.

Apresentamos neste artigo o que é JSON, suas principais vantagens e desvantagens de uso, relação com o formato XML, e como ele se aplica ao trabalho com Python

O que é JSON?

JSON é a abreviação do formato de arquivo Javascript Object Notation. Trata-se de uma uma extensão da sintaxe usada para o envio de dados entre aplicativos da Web e um servidor. Leve, fácil de escrever e de ler, como o próprio nome indica, é baseada em JavaScript

Apesar disso, seu formato de texto independe da linguagem de programação, o que permite que seja usado com Python, Perl, entre outras linguagens. 

Logotipo do JSON
Introduzido no início dos anos 2000, o JSON se tornou o padrão universal de troca de dados. Foto: medium.com

Formato padronizado para armazenamento de dados, o JSON foi originalmente criado como alternativa simples e leve ao XML (Extensive Markup Language). No entanto, acabou substituindo esse primeiro formato em grande parte para facilitar a análise na web

Em termos simples, o JSON foi construído para ser lido facilmente tanto por humanos quanto por computadores, tornando-se a maneira mais popular para os aplicativos trocarem dados. Além disso, é a alternativa mais comum ao se trabalhar com APIs (Application Programming Interface).

O JavaScript Object Notation é usado em muitos aplicativos e linguagens de programação diferentes. NoSQL e outros vários bancos de dados relacionais possuem conectores para armazenar esses tipos de arquivos. Ele é encontrado em todas as áreas de programação, incluindo desenvolvimento front-end e back-end.

A sintaxe mínima e a análise simples do JSON aumentam a velocidade da comunicação de várias maneiras. Geralmente, são menos dados para download em comparação com outros formatos e podem ser interpretados na maioria das linguagens modernas sem bibliotecas externas

A sintaxe mínima e a análise simples do JSON aumentam a velocidade da comunicação de várias maneiras. Geralmente, são menos dados para download em comparação com outros formatos e podem ser interpretados na maioria das linguagens modernas sem bibliotecas externas. 

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

Por esses motivos, além de ser autodescritivo e fácil de ler, o JSON continua sendo a opção de formato de dados usada pela maioria dos desenvolvedores, assim como por analistas e cientistas de dados.

 Vale considerar também que o JavaScript Object Notation tem grande apelo para os programadores que trabalham nos ambientes restritivos de programação da Web e de dispositivos.

Para que serve

O JSON é adequado para os seguintes casos de uso:

  • Transmissão de dados: quando as informações são solicitadas por meio de uma API, o JavaScript Object Notation é usado como formato de resposta em muitos casos;
  • Armazenamento de dados: devido aos baixos requisitos de formato de dados, estruturas de dados flexíveis como o JSON podem ser armazenadas facilmente;
  • Armazenamento temporário de dados: a Notação de Objeto JavaScript é frequentemente usada para armazenar dados em um programa por um curto período de tempo. Devido à alta compatibilidade com outras linguagens de programação, esses arquivos podem ser usados ​​por diferentes aplicativos;
  • Baixa contagem de caracteres: o JSON pode ter uma contagem de caracteres substancialmente menor em comparação a formatos como o XML, reduzindo a sobrecarga nas transferências de dados;
  • Facilidade de análise: é mais fácil de analisar em comparação a outros formatos similares. 

Qual a sintaxe do JSON? Conheça a estrutura 

código de programação simbolizando a sintaxe do json
Como a estrutura JSON é baseada na sintaxe literal do objeto JavaScript, eles compartilham várias semelhanças. Foto: code.visualstudio.com

A estrutura de um objeto JSON é a seguinte:

  • Chaves { } seguram objetos
  • Os dados estão em pares de chave e valor
  • Colchetes [ ] contêm matrizes

Cada elemento de dados é colocado entre aspas se for um caractere ou sem aspas se for um valor numérico. Vírgulas são usadas para separar pedaços de dados.

Como resultado, a sintaxe literal do objeto JSON se parece com isso:

sintaxe do json

Um objeto JSON contém zero, um ou mais pares de valores-chave, também chamados de propriedades. O objeto é cercado por chaves { }. Cada par chave-valor é separado por uma vírgula. 

Há dois tipos principais de estrutura que compõem o JSON API:

  • Estrutura de objeto JSON: descreve o que é um objeto JSON, como ele é estruturado e quais tipos de dados de valor estão disponíveis.
  • Estrutura array JSON: descreve o que é uma matriz JSON, como ela é estruturada e quais tipos de dados são permitidos em uma matriz JSON.

O site json.org apresenta em detalhes todos os componentes de cada um dessas estruturas JSON, além de explicar, passo a passo, a função e a importância de objetos e arrays.

Quais as vantagens do JSON?

O JSON oferece diversos benefícios ao ser utilizado para a troca de dados. Algumas dessas vantagens incluem:

  • Autodescrição: a sintaxe e a estrutura hierárquica das strings JSON podem, em alguns casos, ser interpretadas por aplicativos que ainda não sabem quais dados esperar.
  • Estrutura simples: esse fato o torna adequado e seguro para transferência entre plataformas e sistemas operacionais que não compartilham prontamente tipos de documentos mais complexos. Como texto, o JSON também pode ser facilmente exibido e editado em editores simples.
  • Compacto: uma string JSON média tem cerca de dois terços do tamanho dos mesmos dados em XML;
  • Alta legibilidade: fácil de aprender, fácil de ler e fácil de entender;
  • Desempenho: JSON é bastante rápido, pois consome muito menos espaço de memória, o que é especialmente adequado para gráficos ou sistemas de objetos grandes;
  • Ferramenta gratuita: a biblioteca JSON é de código aberto e de uso gratuito;
  • Não requer mapeamento: a API Jackson fornece mapeamento padrão para muitos objetos a serem serializados.
  • Clean JSON: cria um resultado JSON limpo e compatível que é fácil de ler.
  • Independência: a biblioteca JSON não requer nenhuma outra biblioteca para processamento;
  • Rapidez: como sua sintaxe é muito pequena e leve, o JSON fornece uma execução veloz dos dados, o que garante uma resposta mais rápida.

Quais as desvantagens do JSON?

A forma compacta do JSON tem também suas desvantagens, uma vez que os desenvolvedores precisam seguir especificações restritivas desse formato de dados. Isso tem um impacto sobre a capacidade de escrita e legibilidade do código até certo ponto. 

Abaixo, você confere algumas outras desvantagens do JSON:

  • Verbosidade: certamente, o JSON usa menos caracteres do que suas contrapartes. Mas o mesmo recurso se torna uma desvantagem quando você está trabalhando em projetos com propósitos especiais. O motivo é que o código JSON não é conciso, o que anula o propósito de usá-lo. Nesses casos, convém explorar outros formatos.
  • Ausência de Data Type: o JSON inclui tipos de dados como string, number, object, array, boolean e null. Mas pula o tipo de data type. A falta do tipo de dados de data no JSON força os desenvolvedores a procurar uma alternativa. 
  • Segurança: embora a maioria dos navegadores da Internet forneça suporte nativo a JSON, ainda há alguns que não oferecem. Mas existe a possibilidade de que o uso dessa função torne seu aplicativo menos seguro e vulnerável a ataques. Nessas situações, se forem inseridos scripts maliciosos, eles podem causar estragos imediatamente;
  • Comentários: os comentários são essenciais para a compreensão do código. Você pode usar comentários em JSON, mas com limitações. Isso quer dizer que você terá dificuldade em esclarecer os dados nos próprios dados. Além disso, comentários não são permitidos por algumas bibliotecas JSON como entradas.

Quais as diferenças entre JSON e XML?

Apesar de atenderem a propósitos muito semelhantes, existem algumas diferenças entre JSON e XML. Distinguir ambos pode ajudar a decidir quando optar por um ou outro e entender qual é a melhor alternativa de acordo com necessidades e objetivos específicos.

Mas JSON vs. XML talvez não seja uma comparação totalmente justa. Enquanto XML é uma linguagem de marcação, JSON, por outro lado, é um formato de dados. Embora o JSON seja percebido como um substituto do XML, ele não executa nenhum processamento ou cálculo. 

Entre suas muitas diferenças, é possível afirmar que o que realmente distingue JSON de XML é a análise de dados

O JSON pode ser facilmente analisado por uma função JavaScript regular, pois já está integrado. O mesmo não acontece com o XML, que precisa ser analisado com um analisador XML, sendo assim mais difícil e lento. No entanto, algumas linguagens, como Java, possuem analisadores XML como parte de sua biblioteca padrão.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada
XML (esquerda) x JSON (direita)
XML (esquerda) vs. JSON (direita). Foto: imaginarycloud.com

A simplicidade da sua estrutura e sintaxe mínima tornam o JSON mais fácil de ser usado e lido por humanos. Em contrapartida, o XML, é frequentemente caracterizado por sua complexidade e padrão antiquado devido à estrutura de tags que torna os arquivos maiores e difíceis de ler.

A maneira como os dados são armazenados em XML também difere do JSON. Enquanto a linguagem de marcação armazena os dados em uma estrutura de árvore, ao contrário, o JSON os armazena como um mapa, o que envolve pares chave-valor. 

Além disso, o JSON não utiliza tags finais e pode usar arrays (estruturas de dados com grupos de elementos).

Trabalhando com JSON em Python

O Python conta com uma biblioteca chamada json, usada para lidar com o formato de dados JSON. Essa biblioteca python fornece todas as ferramentas necessárias para trabalhar com objetos JSON, incluindo análise, serialização, desserialização e muito mais. 

logotipo da python json
Foto: geeksforgeeks.org

A seguir, você confere os métodos que a biblioteca json fornece para codificar objetos Python no formato JSON e vice-versa:

dump e dumps

json dump e dumps
Codificação e serialização Python JSON usando dump e dumps. Foto: pynative.com
  • json.dump() (sem “ s ” em “dump”) é usado para escrever objetos serializados Python como dados formatados em JSON em um arquivo.
  •  json.dumps() codifica qualquer objeto Python em String formatado em JSON.

load e loads

load e loads json
load e loads são métodos Python para ler dados JSON file e String. Foto: pynative.com
  • json.load() serve para analisar JSON de URL ou arquivo.
  • json.loads()usado para analisar string com conteúdo JSON.

Serialização

O processo de codificação JSON geralmente é chamado de serialização . Este termo refere-se à transformação de dados em uma série de bytes (daí serial) para serem armazenados ou transmitidos através de uma rede. 

Para lidar com o fluxo de dados em um arquivo, a biblioteca JSON em Python usa a função dump() para converter os objetos Python em seus respectivos objetos JSON, facilitando a gravação de dados em arquivos. Confira a tabela abaixo:

tabela comparativa entre python e json
Vários tipos de dados em Python são armazenados quando convertidos em JSON. Foto: machinelearningplus.com

Desserialização

A desserialização é o oposto da serialização. Ou seja, a conversão de objetos JSON em seus respectivos objetos Python. O método load() é usado para isso. 

Se você usou dados JSON de outro programa ou os obteve como um formato de string, eles podem ser facilmente desserializados com load(), que serve para carregar de uma string:

Exemplo de desserialização com load
Exemplo de desserialização com load

Codificação e Decodificação

A codificação é definida como a conversão do texto ou valores em uma forma criptografada que só pode ser usada pelo usuário desejado por meio da decodificação. 

Aqui, a codificação e a decodificação são feitas para o formato JSON (objeto). A codificação também é conhecida como serialização e a decodificação é conhecida como desserialização. Python tem um pacote popular para esta operação, conhecido como Demjson.

Quer aprender mais sobre Análise de Dados? Conheça nossos cursos!

Nossa Trilha de Data Science conta com cursos intensivos na área e ensina a como coletar, manipular e tratar grandes quantidades de dados. Tudo isso com jornada personalizada e materiais complementares desenvolvidos por especialistas no mercado.

A plataforma de ensino da Awari também conta com mentorias individuais, aulas ao vivo e suporte de carreira para você dar um próximo passo na sua vida profissional.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada

Sobre o autor

A melhor plataforma para aprender tecnologia no Brasil

A Awari é a melhor maneira de aprender tecnologia no Brasil.
Faça parte e tenha acesso a cursos com aulas ao vivo e mentorias individuais com os melhores profissionais do mercado.