![]() |
JSON |
Índice
Introdução
Nesse post iremos fazer uma introdução ao JSON em Delphi. Falaremos sobre o que é o JSON, qual a estrutura básica do JSON e um exemplo simples e prático para que você possa começar a trabalhar com JSON em Delphi de forma eficiente, elevando o nível dos seus projetos.
O que é JSON e Por que é Importante
JSON, ou JavaScript Object Notation, é um formato leve de troca de dados que é fácil para os seres humanos lerem e escreverem, e fácil para as máquinas interpretarem e gerarem. JSON é baseado em um subconjunto da linguagem de programação JavaScript, mas é independente de linguagem e plataforma, o que o torna uma escolha popular para a comunicação entre sistemas diferentes.
Estrutura básica do JSON
Um arquivo JSON é essencialmente uma coleção de pares chave-valor organizados de uma forma que se parece muito com a estrutura de um objeto em JavaScript. Se você nunca programou em JavaScript, não se preocupe! Pense nisso como uma lista de itens, onde cada item tem um nome (a chave) e um valor associado a ele.
Simplificando, um documento JSON é composto de pares chave-valor e listas ordenadas de valores. Aqui está um exemplo simples de JSON:
{
"nome": "João",
"idade": 30,
"habilidades": ["Delphi", "JavaScript", "SQL"]
}
Neste exemplo, temos um objeto JSON que representa uma pessoa com nome, idade e uma lista de habilidades.
Vamos entender cada parte:
- Chaves: As chaves são os nomes dos itens que você está descrevendo. No exemplo, as chaves são
"nome"
,"idade"
, e"habilidades"
. Elas sempre aparecem entre aspas duplas. - Valores: Os valores são os dados reais associados a cada chave. No exemplo, os valores são
"João"
(um texto),30
(um número), e"Delphi", "JavaScrip" e "SQL"
(uma lista). Os valores podem ser de vários tipos, como texto (string), número, booleano (true
oufalse
) ou até mesmo outros objetos ou listas. - Pares Chave-Valor: Cada par chave-valor é separado por dois pontos (
:
). E cada par é separado por vírgulas. Tudo isso é envolvido por chaves ({}
), que indicam o início e o fim do objeto JSON. - Lista: As listas são representadas por colchetes([ ]), e elas vem sempre depois dos dois pontos, indicando que está sempre do lado do valor.
Tipos de Dados em JSON
Agora que você conhece a estrutura básica, vamos falar sobre os tipos de dados que você pode usar em JSON.
1- String: Sequências de texto, sempre entre aspas duplas. Exemplo: "nome": "Maria"
2- Número: Valores numéricos, que podem ser inteiros ou decimais. Exemplo: "idade": 30
3- Booleano: Valores verdadeiros (true
) ou falsos (false
). Exemplo: "casado": true
4- Objeto: Um objeto dentro de outro objeto. Exemplo:
{
"endereco": {
"rua": "Av. Paulista",
"numero": 1000
}
}
5- Aqui, endereco
é uma chave que contém outro objeto como valor.
6- Array (Lista): Uma lista de valores, que pode incluir strings, números, objetos, ou até mesmo outras listas. Exemplo:
{
"amigos": ["João", "Ana", "Pedro"]
}
Neste exemplo, a chave "amigos"
está associada a uma lista de strings.
Exemplo Mais Complexo
Vamos juntar tudo isso em um exemplo mais completo:
{
"nome": "Carlos",
"idade": 25,
"casado": false,
"endereco": {
"rua": "Rua das Flores",
"numero": 123,
"cidade": "Rio de Janeiro"
},
"hobbies": ["futebol", "leitura", "cinema"]
}
Neste JSON:
"nome"
é uma string."idade"
é um número."casado"
é um booleano."endereco"
é um objeto com suas próprias chaves e valores."hobbies"
é uma lista de strings.
Por Que JSON é Importante?
JSON é muito utilizado especialmente para executar a comunicação entre sistemas, especialmente na web. Ele é o formato de dados preferido para APIs web, substituindo o uso do XML em muitos casos devido à sua simplicidade e legibilidade. As vantagens do JSON incluem:
- Leveza: JSON tem uma estrutura simples e leve, o que o torna eficiente para transmissão de dados.
- Facilidade de Uso: A sintaxe de JSON é fácil de ler e escrever, tanto para humanos quanto para máquinas.
- Suporte Universal: JSON é suportado por praticamente todas as linguagens de programação modernas.
Vantagens de Usar JSON para Troca de Dados
Simplicidade
JSON é fácil de ler e escrever, com uma estrutura simples que usa apenas alguns delimitadores como chaves {}
, colchetes []
e dois pontos :
. Isso torna JSON uma escolha intuitiva para desenvolvedores.
Compactação
JSON é mais compacto que XML, o que significa que ele requer menos espaço para armazenar e transmitir os mesmos dados. Isso é particularmente importante em redes de alta latência e baixa largura de banda, como redes móveis.
Suporte em Diversas Linguagens
JSON é amplamente suportado em diversas linguagens de programação. Em Delphi, podemos usar bibliotecas como System.JSON
para manipular JSON de forma eficiente.
Flexibilidade
JSON é flexível o suficiente para representar dados complexos, incluindo objetos aninhados e arrays. Isso permite que ele se adapte a uma ampla variedade de cenários de aplicação.
Integração com APIs Web
APIs RESTful modernas frequentemente utilizam JSON para envio e recebimento de dados. Isso facilita a integração entre sistemas diferentes, independentemente da linguagem de programação ou plataforma usada.
Trabalhando com JSON em Delphi
Delphi fornece suporte robusto para trabalhar com JSON através da unidade System.JSON
. Vamos explorar como criar, manipular e interpretar JSON em Delphi com exemplos práticos.
Criando JSON em Delphi
Para criar um objeto JSON em Delphi, usamos as classes TJSONObject
e TJSONArray
. Aqui está um exemplo de como criar o JSON que mostramos anteriormente:
Passo 1: Abra o Delphi e crie um novo projeto VCL Forms Application.
Passo 2: Adiciona a biblioteca System.JSON, na sessão uses do formulário principal.
Passo 3: Insira 3 componentes TButton, que serão responsáveis por acionarem o gatilho de criação, leitura e manipulação do arquivo JSON.
Passo 4: Insira uma componente TMemo, que será responsável por exibir a leitura do arquivo JSON.
Veja o código abaixo:
uses
System.JSON;
procedure CriarJSON;
var
JSONObj: TJSONObject;
JSONArray: TJSONArray;
begin
JSONObj := TJSONObject.Create;
try
JSONObj.AddPair('nome', 'João');
JSONObj.AddPair('idade', TJSONNumber.Create(30));
JSONArray := TJSONArray.Create;
JSONArray.Add('Delphi');
JSONArray.Add('JavaScript');
JSONArray.Add('SQL');
JSONObj.AddPair('habilidades', JSONArray);
JSONStr := JSONObj.ToString;
ShowMessage('Arquivo JSON criado com sucesso.');
finally
JSONObj.Free;
end;
end;
No exemplo acima, JSONObj.AddPair
é o método responsável por adicionar a chave e o valor para nome e idade. Já o método JSONArray.Add
é responsável por criar a lista de "habilidades" em forma de JSONArray e depois injetada no JSONObj.AddPair
como sendo o valor da chave "habilidades". Todo o arquivo JSON criado é armazenado em uma variável privada chamada JSONStr, para que possa ser utilizada posteriormente pelos métodos de leitura e modificação do JSON.
Lendo JSON em Delphi
Para ler e interpretar JSON, usamos as classes fornecidas pelo Delphi para acessar os pares chave-valor e arrays. Aqui está um exemplo de como ler o JSON criado anteriormente:
uses
System.JSON;
procedure LerJSON(const JSONString: string);
var
JSONObj: TJSONObject;
Habilidades: TJSONArray;
I: Integer;
begin
JSONObj := TJSONObject.ParseJSONValue(JSONString) as TJSONObject;
try
Memo1.Clear;
if Assigned(JSONObj) then
begin
Memo1.Lines.Add('Nome: '+ JSONObj.GetValue('nome').Value);
Memo1.Lines.Add('Idade: '+ JSONObj.GetValue('idade').Value);
Habilidades := JSONObj.GetValue('habilidades') as TJSONArray;
Memo1.Lines.Add('Habilidades:');
for I := 0 to Habilidades.Count - 1 do
begin
Memo1.Lines.Add(' - '+ Habilidades.Items[I].Value);
end;
end;
finally
JSONObj.Free;
end;
end;
No exemplo acima é utilizado um TMemo para exibir o conteúdo do arquivo JSON formatado. Para a leitura de cada chave é utilizado o método JSONObj.GetValue
, do mesmo jeito que é feito para ler as "habilidades" através do JSONArray. Um laço de repetição for
é utilizado para exibir as "habilidades" uma a uma.
Manipulando JSON em Delphi
Manipular JSON em Delphi é direto, graças às classes e métodos fornecidos. Podemos adicionar, remover ou alterar pares chave-valor e itens de array facilmente. Aqui está um exemplo de como modificar um objeto JSON:
uses
System.JSON;
procedure ModificarJSON(var JSONString: string);
var
JSONObj: TJSONObject;
begin
JSONObj := TJSONObject.ParseJSONValue(JSONString) as TJSONObject;
try
if Assigned(JSONObj) then
begin
JSONObj.RemovePair('idade');
JSONObj.AddPair('idade', TJSONNumber.Create(31));
JSONString := JSONObj.ToString;
end;
finally
JSONObj.Free;
end;
end;
No exemplo acima, o método JSONObj.RemovePair
remove a chave-valor "idade" e logo em seguida o método JSONObj.AddPair
adiciona novamente a chave "idade" mas com o valor de 31, ou seja, modificando o valor da chave "idade" que anteriormente foi criada como 30.
Veja abaixo a ilustração do projeto:
![]() |
Ilustração do projeto. |
Código fonte do exemplo
Você pode fazer o download do exemplo do projeto através do repositório do github:
https://github.com/Gisele-de-Melo/Introducao_JSON
Conclusão
JSON é uma ferramenta poderosa e flexível para troca de dados, amplamente usada em desenvolvimento web e integração de sistemas. Em Delphi, a unidade System.JSON
fornece tudo o que precisamos para criar, ler e manipular JSON de forma eficiente.
Neste artigo, vimos o que é JSON, suas vantagens e como trabalhar com JSON em Delphi com exemplos práticos. Entender e utilizar JSON é uma habilidade essencial para qualquer desenvolvedor moderno, e Delphi torna isso acessível e eficiente.
Nenhum comentário:
Postar um comentário