DEV Community

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

Posted on

17 12 12 12 12

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!

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

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

💜💜💜💜💜💜💜

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay