DEV Community

Cover image for O que é JSON (Javasript Object Notation) e como usamos ?
Henrique Leme de Brito
Henrique Leme de Brito

Posted on

O que é JSON (Javasript Object Notation) e como usamos ?

É bastante comum pra galera que ta começando na programação ficar um pouco perdido com muitos acronismos nas primeiras semanas. Hoje, vamos dar uma passada sobre algo que é muito comum no dia a dia da nossa profissão e que é bem fácil de pegar as manhas, pode confiar!! Neste artigo, vamos explicar o que significa a sigla JSON, como pode ser usado, como é a estrutura dele e muito mais! Bora lá?

Índice

O que é JSON afinal?

O JSON ou "JavaScript Object Notation" é um formato básico para transportar dados, criado em 2000. Mas ao ler o nome, você pode se perguntar:

"Se tem JavaScript no nome, então só posso usá-lo com JavaScript, certo?" - Você, 2024

Não exatamente, pelo fato, de ser um formato leve e simples, ele é fácil de ser lido por outras linguagens e, o mais importante, por pessoas.

"Bem, se é uma maneira leve e simples de transportar dados, então vou usá-lo como um banco de dados." - Você, 2024

Eu não recomendaria...

Por quê? Bom, embora o JSON seja ótimo para transportar dados por causa de sua simplicidade e legibilidade, usá-lo como banco de dados pode não ser a melhor ideia. Arquivos JSON não são projetados para lidar com grandes quantidades de dados de forma eficiente. Eles não possuem recursos de indexação, consulta e transações como bancos de dados SQL (como MySQL e PostgreSQL) ou bancos de dados NoSQL (como MongoDB e ScyllaDB). Usar JSON como banco de dados pode levar a problemas de desempenho, integridade de dados e desafios na gestão de acesso concorrente aos dados.

Não existia uma forma de transportar dados assim antes?

Claro que sim. A principal linguagem usada era o XML (Extensible Markup Language), projetada para ser uma linguagem de marcação flexível e personalizável. Embora seja poderosa e altamente extensível, pode ser bastante verbosa, dificultando sua legibilidade. Cada pedaço de dado no XML é cercado por tags, o que pode aumentar o tamanho do arquivo e a complexidade, especialmente em documentos maiores ou conjuntos de dados.

Qual é a diferença entre JSON e XML?

JSON e XML são ambos formatos de serialização de dados. JSON é mais conciso, o que o torna mais fácil de ler e mais rápido de analisar, sendo bem adaptado às estruturas de dados das linguagens de programação modernas. O XML, por outro lado, é mais verboso com o uso de tags explícitas de início e fim, suportando uma estrutura hierárquica mais complexa adequada para aplicações que exigem metadados detalhados. Enquanto o JSON é preferido para APIs Web devido à sua eficiência, o XML é preferido em ambientes que requerem marcação extensiva de documentos, como aplicações empresariais.

Da uma olhadinha nesse exemplo em XML para comparação:

<livraria>
  <livro>
    <titulo>Aprendendo XML</titulo>
    <autor>Erik T. Ray</autor>
    <preco>29.99</preco>
  </livro>
  <livro>
    <titulo>JSON para Iniciantes</titulo>
    <autor>iCode Academy</autor>
    <preco>39.95</preco>
  </livro>
</livraria>
Enter fullscreen mode Exit fullscreen mode

E agora temos esse mesmo exemplo, mas agora no formato JSON:

{
  "livraria": {
    "livros": [
      {
        "titulo": "Aprendendo XML",
        "autor": "Erik T. Ray",
        "preco": 29.99
      },
      {
        "titulo": "JSON para Iniciantes",
        "autor": "iCode Academy",
        "preco": 39.95
      }
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

Ainda vale a pena usar o XML?

Bom, vai depender do seu objetivo, mas na minha opinião, sempre vale a pena dar uma olhada em alguma coisa que você não conhece, mesmo que você não pretenda usar, só para ter uma ideia do que é e como é usado. Você pode se deparar com um problema que o XML pode resolver um dia, vai saber.

Vantagens do JSON

Então, como você já viu, a principal razão para usar JSON é sua legibilidade, mas vamos listar suas principais vantagens:

  • Fácil de Ler: JSON tem uma estrutura clara e direta.
  • Fácil de Parsear: Sua sintaxe simples facilita a na hora de converter.
  • Compacto: JSON tende a ser mais leve, economizando espaço e largura de banda.
  • Universal: Amplamente suportado por várias linguagens de programação e plataformas, usado por grandes empresas como Google e Twitter.

Sintaxe JSON

A sintaxe JSON é direta e sem muito segredo, seguindo algumas regras básicas:

  1. Dados em pares de nome/valor: Cada elemento de dado em JSON é representado como um par de chave (ou nome) e valor, separados por dois pontos.
  2. Dados separados por vírgulas: Múltiplos pares de chave-valor dentro de um objeto são separados por vírgulas.
  3. Objetos são envoltos por chaves: Um objeto em JSON é cercado por chaves {}.
  4. Arrays são envoltos por colchetes: Um array em JSON é cercado por colchetes [].

Mas é mais fácil visualizar do que ler, então aqui estão alguns exemplos para você, junto com a definição de cada tipo:

Tipos de Dados JSON

JSON suporta os seguintes tipos de dados:

  • String: Uma sequência de caracteres, cercada por aspas duplas. "nome": "João Silva"
  • Número: Valores numéricos, podem ser inteiros ou de ponto flutuante. "idade": 30
  • Objeto: Uma coleção de pares chave-valor, cercados por chaves. "endereço": { "rua": "Rua Principal", "cidade": "Cidade Exemplo" }
  • Array: Uma lista ordenada de valores, cercada por colchetes. "cursos": ["Matemática", "Ciências", "História"]
  • Boolean: Valores verdadeiro ou falso. "éEstudante": false
  • Null: Representa um valor nulo. "nomeDoMeio": null

E não, você não pode escrever comentarios em arquivo um JSON :D

Exemplo prático com Carros

Vamos dizer que você quer manter registros de carros e seus detalhes. Aqui está um exemplo de como esses registros podem ser organizados em JSON:

{
  "carros": [
    {
      "marca": "Toyota",
      "modelo": "Corolla",
      "ano": 2020,
      "características": {
        "cor": "Azul",
        "transmissão": "Automática"
      }
    },
    {
      "marca": "Toyota",
      "modelo": "Corolla",
      "ano": 2021,
      "características": {
        "cor": "Vermelha",
        "transmissão": "Automática"
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Se você quiser adicionar mais carros, basta adicionar mais objetos ao array de carros na estrutura JSON.

E isso pode ser facilmente feito analisando o JSON em uma linguagem de sua escolha e, em seguida, manipulando-o como desejar. Aqui estão alguns exemplos usando o JSON mostrado anteriormente para dar uma ideia melhor de como ler e analisar um arquivo JSON:

Trabalhando com JSON em JavaScript

const fs = require('fs').promises

const jsonPath = 'C:docs/example/example.json'
const readJsonFile = async () => {
  // Lê o conteúdo do JSON e garante que seja lido como uma string
  const jsonContent = await fs.readFile(jsonPath, 'utf-8')
  // Converte o JSON em um objeto JavaScript
  const data = JSON.parse(jsonContent)

  console.log(data.carros[0])
  // Saída: { marca: "Toyota", modelo: "Corolla", ano: 2020, características: { cor: "Azul", transmissão: "Automática" } }

  console.log(data.carros[1])
  // Saída: { marca: "Toyota", modelo: "Corolla", ano: 2021, características: { cor: "Vermelha", transmissão: "Automática" } }
}

readJsonFile()
Enter fullscreen mode Exit fullscreen mode

Trabalhando com JSON em Python

import json  

# Lê o arquivo JSON
with open('C:docs/example/example.json', 'r') as jsonFile:  
    # Analisa o conteúdo do JSON
    jsonContent = json.load(jsonFile)  

print(jsonContent['carros'][0])  
# Saída: {'marca': 'Toyota', 'modelo': 'Corolla', 'ano': 2020, 'características': {'cor': 'Azul', 'transmissão': 'Automática'}}  
print(jsonContent['carros'][1])  
# Saída: {'marca': 'Toyota', 'modelo': 'Corolla', 'ano': 2021, 'características': {'cor': 'Vermelha', 'transmissão': 'Automática'}}
Enter fullscreen mode Exit fullscreen mode

Trabalhando com JSON em PHP

<?php  
$jsonPath = 'C:docs/example/example.json';  
// Lê o conteúdo do JSON
$contents = file_get_contents($jsonPath);  

// Converte o conteúdo do JSON em um Objeto PHP
$jsonContent = json_decode($contents);  

print_r($jsonContent->carros[1]);  
// Saída: stdClass Object  
// (  
//    [marca] => Toyota  
//    [modelo] => Corolla  
//    [ano] => 2021  
//    [características] => stdClass Object  
//        (  
//            [cor] => Vermelha  
//            [transmissão] => Automática  
//        )  
// )
?>
Enter fullscreen mode Exit fullscreen mode

Trabalhando com JSON em Java

package org.example;  
import org.json.JSONArray;  
import org.json.JSONObject;  

import java.io.IOException;  
import java.nio.charset.StandardCharsets;  
import java.nio.file.Files;  
import java.nio.file.Paths;  

public class Main {  
    public static void main(String[] args) throws IOException {  
        String jsonFilePath = "C:docs/example/example.json";  
        // Lê o conteúdo do arquivo e converte em uma string
        String jsonContent = Files.readString(Paths.get(jsonFilePath), StandardCharsets.UTF_8);  

        // Converte o conteúdo da string em um Objeto JSON
        JSONObject jsonExample = new JSONObject(jsonContent);  

        JSONArray carros = jsonExample.getJSONArray("carros");  

        System.out.println(carros.get(0));  
        // Saída: {"características": {"transmissão":"Automática","cor":"Azul"},"ano":2020,"modelo":"Corolla","marca":"Toyota"}  
        System.out.println(carros.get(1));  
        // Saída: {"características":{"transmissão":"Automática","cor":"Vermelha"},"ano":2021,"modelo":"Corolla","marca":"Toyota"}  
    }  
}
Enter fullscreen mode Exit fullscreen mode

PS: O exemplo em Java usa uma biblioteca json. Se você for testá-lo, certifique-se de incluí-la nas suas dependências.

Conclusão

Entender JSON pode parecer complicado no começo, mas na verdade é muito simples quando você pega o jeito! Demos uma passada sobre o que é JSON, como é usado e por que é tão útil.

Desde entender sua sintaxe até vê-lo em ação em diferentes linguagens de programação, agora você está pronto para dar os primeiros passos e começar a usar JSON em seus projetos.

Se você ainda tiver alguma dúvida, sinta-se à vontade para me perguntar diretamente. Espero que tenha gostado do artigo - não se esqueça de curtir e compartilhar com aquele amigo que ainda está lutando para entender JSON.

Feedback sobre o artigo são sempre bem-vindos para que eu possa melhorar nos próximos. Obrigado por ler, mantenha-se saudável e beba água!

Top comments (4)

Collapse
 
phenriquesousa profile image
Pedro Henrique

Muito bom!! Obrigado por compartilhar

Collapse
 
leonardorafaeldev profile image
Leonardo Rafael Dev

Muito bom primo !

Collapse
 
osvaldo_josvictor_3e816 profile image
Osvaldo José Victor

Amei o contéudo!

Collapse
 
mateuxaff profile image
Mateus Ferreira Rodrigues

💜💜💜💜💜💜💜