TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (5)  (0)

Neste artigo iremos trabalhar com os tipos nativos do delhi para notação JSON implementados na unit DBXJSON. Especialmente, iremos criar vários tipos de dados em JSON, criar arrays e objetos do tipo JSON.

TRABALHANDO COM TIPOS JSON NO DELPHI 2010

Tipo didático-prático


Requisitos:
Delphi 2010;


Neste artigo iremos trabalhar com os tipos nativos do delhi para notação JSON implementados na unit DBXJSON.
Especialmente, iremos criar vários tipos de dados em JSON, criar arrays e objetos do tipo JSON.


Vamos à prática

No delphi 2010 clique em File > New > VCL Forms Application - Delphi.

Selecione o formulário e no Object Inspector altere a propriedade Caption para TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1

Adicione no uses da unit a unit DBXJSON;

No formulário coloque um botão e um Memo.

Selecione o memo1 e no Object Inspector na propriedade Lines remova o conteúdo.

Selecione o botão e no Object Inspector altere a propriedade Caption para Criando tipos JSON. Altere também a propriedade Name para BtnCriandoTiposJson.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnCriandoTiposJsonClick(Sender: TObject);
var
   js: TJSONString;
   jn1: TJSONNumber;
   jn2: TJSONNumber;
   jt: TJSONTrue;
   jf: TJSONFalse;
begin
   Memo1.Clear;
   js  := TJSONString.Create('Esta é uma string JSON');
   jn1 := TJSONNumber.Create(15);
   jn2 := TJSONNumber.Create(1240.75);
   jt  := TJSONTrue.Create;
   jf  := TJSONFalse.Create;

   Memo1.Lines.Add(js.Value);

   Memo1.Lines.Add(jn1.Value); //pegando como string
   Memo1.Lines.Add(FloatToStr(jn1.AsDouble)); //pegando como Double

   Memo1.Lines.Add(jn2.Value); //pegando como string
   Memo1.Lines.Add(FloatToStr(jn2.AsDouble)); //pegando como Double

   Memo1.Lines.Add(jt.Value); //a função Value de um TJSONTrue retorna vazio pois invoca TJSONAncestor.Value o qual retorna uma string vazia
   Memo1.Lines.Add(jf.Value); //a função Value de um TJSONFalse retorna vazio pois invoca TJSONAncestor.Value o qual retorna uma string vazia
   Memo1.Lines.Add(jt.ToString); //portanto devemos usar a função ToString
   Memo1.Lines.Add(jf.ToString); //portanto devemos usar a função ToString
end;

No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um Objeto com três pares. Altere também a propriedade Name para BtnUmObjetoComTresPares.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmObjetoComTresParesClick(Sender: TObject);
var
   jo : TJSONObject;
begin
   Memo1.Clear;
   jo := TJSONObject.Create;
   //Na notação JSON, objetos são delimitados por {}
   //e podem conter diversos pares separados por ,
   //sendo que cada par é formado por chave e valor
   jo.AddPair('Nome', TJSONString.Create('DELMAR')); //AddPair adiciona ao JSONObject um par com chave Nome e Valor DELMAR
   jo.AddPair(TJSONPair.Create('Cidade', 'AJURICABA')); //Também podemos usar TJSONPair para criar um par
   jo.AddPair(TJSONPair.Create('Bairro', 'CENTRO'));
   Memo1.Lines.Add(jo.ToString);
end;


No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um array com três elementos onde cada elemento é um objeto contendo um único par. Altere também a

propriedade Name para BtnUmArrayCTresElemCadaElemEumObjContUmUnicoPar.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmArrayCTresElemCadaElemEumObjContUmUnicoParClick(
  Sender: TObject);
var  //retorna um array com três elementos onde cada elemento é um objeto contendo um único par
  ja: TJSONArray;
  jo1, jo2, jo3 : TJSONObject;
begin
   Memo1.Clear;
   //Na notação JSON, arrays são delimitados por []
   //e podem conter diversos elementos separados por ,
   ja := TJSONArray.Create;

   jo1 := TJSONObject.Create;
   jo1.AddPair('Nome', TJSONString.Create('DELMAR'));

   jo2 := TJSONObject.Create;
   jo2.AddPair(TJSONPair.Create('Nome', 'DEVMEDIA'));

   jo3 := TJSONObject.Create;
   jo3.AddPair(TJSONPair.Create('Nome', 'DALVAN'));

   ja.AddElement(jo1); //a procedure AddElemento adiciona um elemento ao JSONArray
   ja.AddElement(jo2);
   ja.AddElement(jo3);

   Memo1.Lines.Add(ja.ToString);
end;


No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um array com um elemento que é um objeto contendo três pares. Altere também a propriedade Name para BtnUmArrayComUmElementoQueEumObjetoContendoTresPares.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmArrayComUmElementoQueEumObjetoContendoTresParesClick(Sender: TObject);
var  // retorna um array com um elemento que é um objeto contendo três pares
   ja: TJSONArray;
   jo1: TJSONObject;
begin
   Memo1.Clear;
   ja := TJSONArray.Create;
   jo1 := TJSONObject.Create;
   jo1.AddPair('Nome', TJSONString.Create('DELMAR'));
   jo1.AddPair(TJSONPair.Create('Cidade', 'AJURICABA'));
   jo1.AddPair(TJSONPair.Create('Bairro', 'CENTRO'));
   ja.AddElement(jo1);
   Memo1.Lines.Add(ja.ToString);
end;

No formulário coloque um mais um botão.

Selecione o botão e no Object Inspector altere a propriedade Caption para Um array com dois elementos onde cada elemento é um objeto contendo três pares. Altere também a propriedade Name para BtnUmArrayCDoisElemCadaElemEumObjContendoTresPares.

Clique duplo sobre o botão e codifique o procedimento para que fique de acordo com o código abaixo:

procedure TForm1.BtnUmArrayCDoisElemCadaElemEumObjContendoTresParesClick(Sender: TObject);
var  // retorna um array com dois elementos onde cada elemento é um objeto contendo três pares
   ja: TJSONArray;
   jo1, jo2 : TJSONObject;
begin
   Memo1.Clear;
   ja := TJSONArray.Create;

   jo1 := TJSONObject.Create;
   jo1.AddPair('Nome', TJSONString.Create('DELMAR'));
   jo1.AddPair(TJSONPair.Create('Cidade', 'AJURICABA'));
   jo1.AddPair(TJSONPair.Create('Bairro', 'CENTRO'));

   jo2 := TJSONObject.Create;
   jo2.AddPair('Nome', TJSONString.Create('DALVAN'));
   jo2.AddPair(TJSONPair.Create('Cidade', 'IJUÍ'));
   jo2.AddPair(TJSONPair.Create('Bairro', 'JARDIM'));

   ja.AddElement(jo1);
   ja.AddElement(jo2);

   Memo1.Lines.Add(ja.ToString);
end;

Abaixo segue uma sugestão de como dispor os objetos no formulário




Salve o projeto, se desejar, em sua pasta preferida.

Pressione F9 para compilar e executar o projeto.

Clique em cada botão e observe os resultados.

Abraço e até a próxima.
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?