Descubra tudo sobre JSON – JavaScript Object Notation. Aprenda como usar, vantagens e diferenças em relação a outros formatos de dados.
JSON é uma sigla para JavaScript Object Notation, um formato de arquivo de padrão aberto para armazenar dados de maneira organizada e legível, ao mesmo tempo que facilita o acesso. Os dados são apresentados em um formato textual básico, que consiste em pares “chave / valor”.
Estreitamente relacionado ao JavaScript, esse formato pode, entretanto, ser gerado e lido pela maioria das linguagens de programação. Essa universalidade permitiu que ele se tornasse uma forma muito popular de armazenar, organizar, ler e compartilhar dados em aplicativos e serviços da web.
Muitos sites usam JSON para compartilhamento de dados, além de feeds RSS – um formato de distribuição de conteúdo em tempo real pela internet. Por um bom motivo, os feeds JSON podem ser carregados de forma assíncrona com mais facilidade do que os feeds XML / RSS.
É, portanto, amplamente utilizado para comunicação assíncrona entre navegador e servidor, em particular como um substituto para XML em certos sistemas do tipo AJAX.
Como surgiu o JSON
JSON (JavaScript Object Notation) é um formato de dados que é usado para armazenar e trocar informações entre sistemas. Ele foi criado em meados dos anos 90 por Douglas Crockford, um programador e consultor de tecnologia.
Na época, Crockford trabalhava na Netscape Communications, e estava trabalhando em uma nova tecnologia chamada “JavaScript“. Ele precisava de um formato de dados simples que pudesse ser facilmente lido e escrito pelo JavaScript, e que pudesse ser usado para trocar dados entre o servidor e o cliente.
Crockford criou o JSON como uma alternativa mais simples e mais leve ao formato de dados XML, que era popular na época. O JSON é baseado na notação de objeto do JavaScript e usa uma sintaxe simples para representar dados estruturados. Ele é facilmente legível por humanos e por máquinas, e se tornou uma escolha popular para a troca de dados na web.
Hoje em dia, o JSON é amplamente utilizado em aplicações web e móveis, e é suportado por uma ampla variedade de linguagens de programação e plataformas. Ele é usado para trocar dados entre sistemas, para armazenar configurações e preferências do usuário, e para armazenar e compartilhar informações em geral.
Como funciona?
Suponha que queremos armazenar informações sobre uma pessoa em um formato JSON. Aqui está como isso pode ser feito:
Este é um exemplo básico de um objeto JSON, que contém cinco pares de nome-valor. Cada par é separado por uma vírgula, e os nomes são sempre escritos entre aspas duplas. Os valores podem ser de vários tipos, incluindo números, strings, booleanos, objetos ou arrays.
No exemplo acima, o nome da pessoa é “João da Silva”, a idade é 35 anos, a cidade é “São Paulo”, o telefone é “(11) 1234-5678” e o email é “[email protected]“.
Essas informações podem ser facilmente lidas e interpretadas por um programa que entenda a sintaxe JSON. Por exemplo, um aplicativo da web pode usar essas informações para preencher um formulário de cadastro ou para exibir informações de contato em uma página.
Confira mais sobre o JSON no vídeo do Código Fonte abaixo:
Como armazenar objetos JSON?
Concretamente, os objetos JavaScript Object Notation são apenas textos. Portanto, é possível armazená-los de várias maneiras. Eles podem ser armazenados em um banco de dados, em um arquivo de texto separado, no armazenamento do cliente como cookies, ou mesmo usando o formato .json.
Depois que o conteúdo é armazenado, ele pode ser recuperado e descriptografado de diferentes maneiras e em diferentes idiomas. Com a linguagem JavaScript, você pode usar os métodos JSON.stringify () e JSON.parse ().
Quais são os principais usos da linguagem JSON?
A linguagem JSON é amplamente utilizada em várias áreas da computação e em diferentes tipos de aplicativos, incluindo:
- Troca de dados: JSON é frequentemente usado para trocar dados entre sistemas em aplicativos web e móveis. Ele é usado para enviar e receber informações estruturadas em uma variedade de formatos, incluindo APIs RESTful.
- Armazenamento de dados: JSON é usado para armazenar dados estruturados em bancos de dados NoSQL, como MongoDB e CouchDB. Ele é uma alternativa popular ao formato de dados XML devido à sua simplicidade e facilidade de uso.
- Configurações de aplicativos: JSON é usado para armazenar configurações e preferências de aplicativos, como configurações de tema, preferências de idioma e configurações de usuário.
- Integração de sistemas: JSON é usado para integrar diferentes sistemas e aplicativos, como um sistema de gerenciamento de conteúdo (CMS) com um sistema de comércio eletrônico.
- Troca de informações financeiras: JSON é usado para trocar informações financeiras entre sistemas em aplicativos de fintech, como transferências de dinheiro e negociações de ações.
- Compartilhamento de dados abertos: JSON é usado para compartilhar dados abertos em vários setores, incluindo governos, ciência e pesquisa, saúde e educação.
Diferenças entre JSON e objeto JavaScript
Como o nome sugere, JSON é mais ou menos um objeto JavaScript, no entanto, existem algumas diferenças. Em primeiro lugar, conforme explicado anteriormente, JSON é um formato de texto que facilita a troca de dados estruturados entre todas as linguagens de programação.
Portanto, é universal e não se limita ao JavaScript. Na verdade, não faz parte do JavaScript, é apenas derivado da maneira como os objetos JavaScripts são escritos.
Em termos de sintaxe, existem duas diferenças principais. Primeiro, todos os nomes (chaves) são representados como strings, ou seja, eles devem ser colocados entre aspas.
A outra grande diferença está no tipo de dados que o JSON pode armazenar. Ele aceita os seguintes valores:
- Object (objeto)
- Array (arranjo)
- Number (número)
- True (verdadeiro)
- False (falso)
- Null (nulo)
É muito semelhante ao que você encontra em objetos JS, mas como o JSON é representado como texto, você não pode atribuir a ele coisas como funções ou valores de data dinâmica usando Date(), por exemplo.
Portanto, não existem métodos ou outras funcionalidades em JSON, existe apenas texto. E, por um lado, isso é bom porque o torna um formato universal de troca de dados.
É importante observar que uma parte completa do próprio JSON é tecnicamente um objeto JSON, e o tipo Object é o que permite que os objetos JSON sejam aninhados como valores, bem como objetos em JavaScript.
Bibliotecas externas
A linguagem JSON foi criada para armazenar objetos JavaScript. Ele se espalhou e agora pode ser usado pela maioria das linguagens de desenvolvimento, incluindo Java.
A linguagem Java, no entanto, não fornece métodos nativos para analisar uma sequência de caracteres JSON. Por isso, a solução mais simples é usar bibliotecas externas.
A biblioteca org.json permite que você analise uma string de caracteres JSON para então ler os objetos e seus atributos diretamente, como um objeto ou como uma matriz.
JSON vs XML: qual é o melhor formato de dados?
Isso depende do contexto e dos requisitos específicos de cada projeto ou aplicação. JSON é um formato de dados mais recente e mais leve em comparação com o XML (Extensible Markup Language). Ele é amplamente utilizado em aplicativos da Web e móveis, bem como em sistemas de comunicação de dados, como APIs REST. O JSON é baseado em JavaScript e é fácil de ler e escrever, além de ser mais compacto do que o XML. Ele também é mais eficiente em termos de desempenho, o que significa que é mais rápido de processar e requer menos recursos do sistema.
Por outro lado, o XML é um formato de dados mais antigo e mais extensível. Ele foi projetado para ser uma linguagem de marcação para descrever dados estruturados e é amplamente utilizado em aplicativos empresariais, sistemas de gerenciamento de conteúdo e intercâmbio de dados entre diferentes plataformas. O XML tem uma sintaxe mais rigorosa em comparação com o JSON, o que pode tornar a criação e a validação de documentos XML mais complexas. No entanto, sua estrutura é mais flexível e pode suportar uma ampla variedade de tipos de dados e aplicativos.
Em resumo, o JSON é uma boa escolha para aplicativos da Web e móveis, onde a simplicidade e o desempenho são importantes, enquanto o XML é mais adequado para aplicativos empresariais complexos que exigem uma estrutura mais flexível e extensível para lidar com dados estruturados. A escolha entre JSON e XML depende do contexto do projeto e das necessidades específicas de cada aplicação.
Quais são as desvantagens do JSON?
Apesar de suas muitas vantagens, como flexibilidade e concisão, esse formato de dados tem vários pontos fracos.
Em primeiro lugar, a ausência de um esquema que permita flexibilidade em termos de representação dos dados também aumenta o risco de “distorcer” as informações, o que é bem grave.
Além disso, o único tipo de número compatível é o formato de ponto flutuante de precisão dupla. Portanto, não é possível tirar proveito dos outros tipos de números mais variados e matizados encontrados em muitas linguagens de programação.
Também não há nenhum tipo de data. Na verdade, os desenvolvedores devem representar as datas como strings.
Em consequência, isso pode levar a problemas de discrepância de formato. Assim, a única alternativa é representar as datas como milissegundos.
A ausência de comentários também impede que os campos sejam anotados. É necessário recorrer a documentação adicional, o que aumenta o risco de mal-entendidos.
Finalmente, mesmo que seu detalhamento seja menor em comparação ao XML, este formato de troca de dados não é o mais conciso.
O que é JSONP?
JSONP (JSON with Padding) é uma técnica utilizada para contornar a política de mesma origem do navegador (Same-Origin Policy) que impede que scripts em uma página acessem recursos em um servidor diferente do da própria página.
Quando um script tenta fazer uma solicitação AJAX para um servidor em um domínio diferente, o navegador bloqueia a solicitação por motivos de segurança. O JSONP é uma solução para esse problema, pois permite que o servidor retorne dados no formato JSON envolvidos em uma função de callback.
O processo funciona da seguinte maneira: o script em uma página solicita dados de um servidor em um domínio diferente, incluindo um nome de função de callback como parâmetro na solicitação. O servidor recebe a solicitação e envia os dados solicitados no formato JSON, mas os envolve em uma chamada da função de callback especificada pelo cliente. Isso faz com que o servidor envie uma resposta JavaScript para a solicitação, que é então executada pelo script na página.
Como a resposta do servidor é uma chamada de função JavaScript válida, ela pode ser interpretada pelo navegador e evita a política de mesma origem. O JSONP é amplamente utilizado em APIs públicas para permitir que aplicativos da Web acessem dados de outros domínios, mas deve ser usado com cuidado para evitar vulnerabilidades de segurança, como ataques de injetar scripts maliciosos (XSS).
Ferramentas JSON
Existem muitas ferramentas disponíveis para fazer muitas coisas com dados JSON. Aqui está uma lista de algumas ferramentas interessantes para experimentar:
- JSONLint – um validador de dados JSON. É uma boa ferramenta para aprender os fundamentos da sintaxe e como ela difere da sintaxe do objeto JavaScript.
- json.browse – Permite navegar, embelezar , manipular JSON de fonte externa ou copiar / colar JSON. Um recurso interessante é a capacidade de filtrar dados com base em uma palavra-chave.
- JSONedit – Um construtor JSON visual que facilita a construção de estruturas JSON complexas com diferentes tipos de dados.
- JSON Schema – um vocabulário que permite anotar e validar documentos JSON.
- JSON API – Uma especificação para fazer APIs em JSON.
- CSVJSON – conversor CSV e SQl para JSON
- JSON Formatter – ferramenta online para validar, aprimorar, minimizar e converter dados JSON.
- excelJSON – ferramenta online para converter CSV ou TSV para JSON e JSON para CSV ou TSV.
- Myjson – Um armazém JSON simples para seu aplicativo da web ou móvel.
- jsonbin.org – Um novo projeto de Remy Sharp, um armazém JSON como serviço. Protegido por autenticação, os dados são armazenados em JSON e podem ser vinculados”.
- Kinto – um warehouse JSON genérico com a capacidade de compartilhar e sincronizar.
- JSON Generator – ferramenta online para gerar dados aleatórios em JSON.
- Hjson – Uma extensão de sintaxe para JSON, para tornar mais fácil para humanos ler e corrigir, antes de enviar dados para a máquina.
- JSON Selector Generator – copie / cole JSON, clique em qualquer dado e esta ferramenta dirá qual “seletor” usar em JavaScript para acessar esses dados.
Considerações finais sobre JSON
Se JSON era um conceito relativamente novo para você, esperamos que este artigo tenha dado uma boa ideia do que ele pode fazer no seu trabalho! Em resumo, JSON é uma tecnologia sólida, fácil de usar e poderosa porque é universal. Aproveite!
Se você sentiu alguma dificuldade ou então tem alguma sugestão de algo que não foi mencionado, basta deixar aí nos comentários que no futuro podemos trazer atualizações para este artigo. Também indico esses outros materiais relacionados com este assunto:
Até a próxima! :^)