Tutorial JSON: Aprenda com formato de arquivo simples EXEMPLO

O que รฉ JSON?

JSON รฉ um formato de arquivo utilizado para armazenar informaรงรตes de forma organizada e de fรกcil acesso. Sua forma completa รฉ JavaNotaรงรฃo de Objeto de Script. Ela oferece uma coleรงรฃo de dados legรญvel por humanos que pode ser acessada logicamente. Sua extensรฃo de nome de arquivo para cรณdigo de programaรงรฃo escrito รฉ .json. O tipo de mรญdia da Internet para JSON รฉ application/json e seu identificador de tipo uniforme รฉ public.json.

Por que usar JSON?

Aqui estรฃo os benefรญcios/prรณs importantes do uso de JSON:

  • Fornece suporte para todos os navegadores
  • Fรกcil de ler e escrever
  • Sintaxe simples
  • Vocรช pode analisar nativamente JavaScript usando a funรงรฃo eval()
  • Fรกcil de criar e manipular
  • Apoiado por todos os principais JavaEstruturas de script
  • Suportado pela maioria das tecnologias de back-end
  • JSON รฉ reconhecido nativamente por JavaScript
  • Ele permite transmitir e serializar dados estruturados usando uma conexรฃo de rede.
  • Vocรช pode usรก-lo com linguagens de programaรงรฃo modernas.
  • JSON รฉ um texto que pode ser convertido em qualquer objeto de JavaCrie um script em JSON e envie esse JSON para o servidor.

Histรณria do JSON

Histรณria do JSON
Tutorial JSON

Aqui estรฃo marcos importantes que formam a histรณria do JSON:

  • Douglas Crockford especificou o formato JSON no inรญcio dos anos 2000.
  • O site oficial foi lanรงado em 2002.
  • Em dezembro de 2005, o Yahoo! passa a oferecer alguns de seus serviรงos web em JSON.
  • JSON se tornou um padrรฃo internacional da ECMA em 2013.
  • O padrรฃo de formato JSON mais atualizado foi publicado em 2017.

Recursos do JSON

Fรกcil de usar โ€“ A API JSON oferece fachada de alto nรญvel, que ajuda a simplificar os casos de uso comumente usados.

Desempenho โ€“ JSON รฉ bastante rรกpido porque consome muito menos espaรงo de memรณria, o que รฉ especialmente adequado para grรกficos ou sistemas de objetos grandes.

Ferramenta grรกtis โ€“ A biblioteca JSON รฉ de cรณdigo aberto e de uso gratuito.

Nรฃo requer criaรงรฃo de mapeamento โ€“ A API Jackson fornece mapeamento padrรฃo para muitos objetos a serem serializados.

Limpar JSON โ€“ Cria resultados JSON limpos e compatรญveis que sรฃo fรกceis de ler.

Dependรชncia โ€“ A biblioteca JSON nรฃo requer nenhuma outra biblioteca para processamento.

Regras para sintaxe JSON

As regras para sintaxe JSON sรฃo:

  • Os dados devem estar em pares nome/valor
  • Os dados devem ser separados por vรญrgulas
  • Aparelhos encaracolados devem segurar objetos
  • Colchetes contรชm matrizes

Tipos de dados em JSON

Os tipos de dados importantes usados โ€‹โ€‹โ€‹โ€‹em JSON sรฃo:

Tipo de dados Descriรงรฃo
Sessรฃo Inclui nรบmero real, inteiro ou flutuante
Tanga Consiste em qualquer texto ou Unicode entre aspas duplas com escape de barra invertida
Booleano O tipo de dados Boolean representa valores True ou False
Nulo O valor Nulo indica que a variรกvel associada nรฃo possui nenhum valor
objeto ร‰ uma coleรงรฃo de pares de valores-chave sempre separados por vรญrgula e entre colchetes.
Ordem ร‰ uma sequรชncia ordenada de valores separados.

Sessรฃo

  • O nรบmero รฉ um formato de ponto flutuante de precisรฃo dupla que depende do seu mรฉtodo de implementaรงรฃo.
  • Em JSON vocรช nรฃo pode usar os formatos Hexadecimal e Octal.

A tabela a seguir exibe os tipos de nรบmeros:

Formato Descriรงรฃo
Nรบmero inteiro Nรบmero 1-9 e 0. Nรบmeros positivos e negativos.
fraรงรฃo Fraรงรตes como 3
expoente Expoente como e, e+

Sintaxe:

var json-object-name = { string : number_value,......}

Exemplo:

var obj = {salary: 2600}

Tanga

ร‰ uma sรฉrie de caracteres Unicode entre aspas duplas e escape de barra invertida.

A tabela a seguir mostra vรกrios tipos de string:

Formato Descriรงรฃo
* Use para digitaรงรฃo de aspas duplas
/ Use para solidus
\ Use para solidus reverso
B Use para adicionar backspace
F Do feed
N Para criar uma nova linha
R Use para retorno de carro
T Para mostrar a guia horizontal
U dรญgitos hexadecimais

Sintaxe:

var json-object-name = { string : "string value",โ€ฆ..}

Exemplo:

var obj= {name: 'Andy'}

Booleano

Ele armazena apenas valores verdadeiros ou falsos.

Sintaxe:

var json-object-name = {string : true/false, โ€ฆ..}

Exemplo:

var obj = {active: 'true'}

Ordem

  • ร‰ uma coleรงรฃo ordenada de valores.
  • Vocรช deve usar uma matriz quando os nomes das chaves forem nรบmeros inteiros sequenciais.
  • Deve ser colocado entre colchetes que devem ser separados por ',' (vรญrgula)

Sintaxe:

[value, .......]

Exemplo:

Mostrando um array armazenando vรกrios objetos:

{
   "eBooks":[
      {
         "language":"Pascal",
         "edition":"third"
      },
      {
         "language":"Python",
         "edition":"four"
      },
      {
         "language":"SQL",
         "edition":"second"
      }
   ]
}

Objeto JSON

A Objeto JSON รฉ uma entidade em JSON que estรก entre chaves. ร‰ escrito no conjunto nรฃo ordenado de pares de nome e valor em que o nome deve ser seguido por โ€œ:โ€ (dois pontos), e os pares nome/valor precisam ser separados por โ€œ,โ€ (vรญrgula). Pode ser usado quando os nomes das chaves sรฃo strings arbitrรกrias.

Sintaxe:

{ string :  value, โ€ฆ.. }

Exemplo:

{
"id": 110,
"language": "Python",
"price": 1900,
}

Espaรงo em branco

Vocรช pode inserir espaรงos em branco entre um par de tokens.

Exemplo:

Sintaxe:

{string:"    ",โ€ฆ.}

Exemplo:

var a = " Alex"; var b = "Steve";

Exemplo de JSON

O exemplo de cรณdigo fornecido define como usar JSON para armazenar informaรงรตes relacionadas a livros de programaรงรฃo juntamente com a ediรงรฃo e o nome do autor.

{
   "book":[
      {
         "id":"444",
         "language":"C",
         "edition":"First",
         "author":"Dennis Ritchie "
      },
      {
         "id":"555",
         "language":"C++",
         "edition":"second",
         "author":" Bjarne Stroustrup "
      }
   ]
}  

Vamos entender o formato JSON com outro exemplo de arquivo JSON. Aqui, JSON define o nome, sobrenome e id de um aluno.

{
  "student": [ 
	
     { 
        "id":"01", 
        "name": "Tom", 
        "lastname": "Price" 
     }, 
	
     { 
        "id":"02", 
        "name": "Nick", 
        "lastname": "Thameson" 
     } 
  ]   
}

Aplicaรงรฃo de JSON

Aqui estรฃo algumas aplicaรงรตes comuns de JSON:

  • Ajuda vocรช a transferir dados de um servidor
  • O formato de arquivo JSON de amostra ajuda a transmitir e serializar todos os tipos de dados estruturados.
  • Permite realizar chamadas de dados assรญncronas sem a necessidade de atualizar a pรกgina
  • Ajuda vocรช a transmitir dados entre um servidor e aplicativos da web.
  • ร‰ amplamente utilizado para JavaAplicativo baseado em script, que inclui extensรฃo de navegador e sites.
  • Vocรช pode transmitir dados entre o servidor e o aplicativo da web usando JSON.
  • Podemos usar JSON com linguagens de programaรงรฃo modernas.
  • ร‰ usado para escrever JavaAplicativos baseados em script que incluem complementos de navegador.
  • Os serviรงos da Web e APIs Restful usam o formato JSON para obter dados pรบblicos.

JSON versus XML

Aqui estรก a principal diferenรงa entre JSON e XML

JSON XML
O objeto JSON tem um tipo XML os dados nรฃo tรชm tipo
Tipos JSON: string, nรบmero, array, booleano Todos os dados XML devem ser string
Os dados sรฃo facilmente acessรญveis como objetos JSON Os dados XML precisam ser analisados.
Os arquivos JSON sรฃo mais legรญveis por humanos. Os arquivos XML sรฃo menos legรญveis por humanos.
JSON รฉ compatรญvel com a maioria dos navegadores. A anรกlise XML entre navegadores pode ser complicada
JSON nรฃo possui recursos de exibiรงรฃo. XML fornece a capacidade de exibir dados porque รฉ uma linguagem de marcaรงรฃo.
Recuperar valor รฉ fรกcil Recuperar valor รฉ difรญcil
Suportado por muitos kits de ferramentas Ajax Nรฃo totalmente suportado pelo kit de ferramentas Ajax
Uma maneira totalmente automatizada de desserializar/serializar JavaRoteiro. Os desenvolvedores precisam escrever JavaCรณdigo de script para serializar/desserializar de XML
Suporte nativo para objeto. O objeto deve ser expresso por convenรงรตes โ€“ principalmente pelo uso incorreto de atributos e elementos.

Exemplo JSON

Abaixo estรก um exemplo JSON simples:

{
  "student": [ 
	
     { 
        "id":"01", 
        "name": "Tom", 
        "lastname": "Price" 
     }, 
	
     { 
        "id":"02", 
        "name": "Nick", 
        "lastname": "Thameson" 
     } 
  ]   
}

Exemplo de XML

<?xml version="1.0" encoding="UTF-8" ?>
<root>
	<student>
		<id>01</id>
		<name>Tom</name>
		<lastname>Price</lastname>
	</student>
	<student>
		<id>02</id>
		<name>Nick</name>
		<lastname>Thameson</lastname>
	</student>
</root>

O que JSON nรฃo รฉ?

  • O arquivo de dados JSON de amostra nรฃo รฉ um formato de documento.
  • Nรฃo รฉ uma linguagem de marcaรงรฃo.
  • JSON nรฃo fornece um formato de serializaรงรฃo geral.
  • Nรฃo sรฃo estruturas recorrentes ou cรญclicas.
  • Tambรฉm nรฃo รฉ uma estrutura invisรญvel.

Desvantagens do JSON

Aqui estรฃo algumas vantagens do JSON:

  • Nรฃo hรก suporte para namespace, portanto, pouca extensibilidade
  • Limitada ferramentas de desenvolvimento ajuda
  • Nรฃo hรก suporte para definiรงรฃo formal de gramรกtica

Ferramentas JSON populares (complementos)

Aqui estรฃo ferramentas JSON importantes:

JSONLint:

JSONLint รฉ um projeto de cรณdigo aberto usado como validador e reformatador para JSON. ร‰ um formato leve de intercรขmbio de dados. Copie e cole, digite diretamente ou insira o URL na ferramenta validadora JSON para validar seu cรณdigo JSON.

link: https://jsonlint.com

Editor JSON on-line:

JSON Editor Online รฉ uma ferramenta รบtil baseada na web. Ele permite editar, visualizar e formatar JSON. Ele exibe seus dados lado a lado de forma clara e editรกvel software editor de cรณdigo.

link: https://jsoneditoronline.org/

Ferramenta Minificador JSON:

ร‰ uma ferramenta que ajuda a remover espaรงos em branco e fornece um cรณdigo JSON que ocupa menos espaรงo.

link: https://www.browserling.com/tools/json-minify

Conversor JSON para XML:

O conversor JSON para XML รฉ uma ferramenta simples e eficaz que ajuda vocรช a converter seu cรณdigo JSON.

link: https://codebeautify.org/jsontoxml

Formatador JSON:

O formatador JSON ajuda vocรช a resolver o problema formatando os dados JSON para que sejam fรกceis de ler e depurar por um ser humano.

link:https://jsonformatter.curiousconcept.com/

Resumo

  • O mรฉtodo JSON รฉ usado para armazenar informaรงรตes de forma organizada e de fรกcil acesso.
  • JSON significa JavaNotaรงรฃo de Objeto de Script.
  • JSON Fornece suporte para todos os navegadores oferecidos em vรกrios idiomas.
  • Douglas Crockford especificou o formato JSON no inรญcio dos anos 2000
  • A API JSON oferece fachada de alto nรญvel, que ajuda a simplificar os casos de uso comumente usados
  • As regras importantes para escrever o sistema JSON รฉ que os dados devem ser escritos em pares nome/valor.
  • Nรบmero, String, Booleano, Nulo, Objeto e Matriz sรฃo tipos de dados importantes usados โ€‹โ€‹em JSON.
  • Ajuda vocรช a transferir dados de um servidor.
  • O objeto JSON tem um tipo, enquanto os dados XML nรฃo tรชm tipo
  • JSON nรฃo รฉ um formato de documento
  • Nรฃo hรก suporte para namespace, portanto, pouca extensibilidade
  • JSONLint รฉ um projeto de cรณdigo aberto usado como validador e reformatador para JSON.

Resuma esta postagem com: