This content originally appeared on DEV Community and was authored by Henrique Leme de Brito
É 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?
- Já não existia uma forma de transportar dados assim antes?
- Qual é a diferença entre JSON e XML?
- Ainda vale a pena usar XML?
-
Vantagens do JSON
- Sintaxe JSON
- Tipos de Dados JSON
-
Exemplo prático com Carros
- Trabalhando com JSON em JavaScript
- Trabalhando com JSON em Python
- Trabalhando com JSON em PHP
- Trabalhando com JSON em Java
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>
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
}
]
}
}
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:
- 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.
- Dados separados por vírgulas: Múltiplos pares de chave-valor dentro de um objeto são separados por vírgulas.
-
Objetos são envoltos por chaves: Um objeto em JSON é cercado por chaves
{}
. -
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"
}
}
]
}
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()
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'}}
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
// )
// )
?>
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"}
}
}
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!
This content originally appeared on DEV Community and was authored by Henrique Leme de Brito
Henrique Leme de Brito | Sciencx (2024-06-21T18:33:39+00:00) O que é JSON (Javasript Object Notation) e como usamos ?. Retrieved from https://www.scien.cx/2024/06/21/o-que-e-json-javasript-object-notation-e-como-usamos/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.