TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 3

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. Iremos iterar um JSONArray, em português, um array nativo do delphi do tipo JSON.

Neste artigo iremos trabalhar com os tipos nativos do Delphi para notação JSON implementados na unit DBXJSON. Iremos iterar um JSONArray, em português, um array nativo do Delphi do tipo JSON.

Vamos à prática.

Abra o projeto implementado na PARTE 2 desta sequência de artigos.

Selecione o formulário e altere a propriedade Caption para TRABALHANDO COM TIPOS JSON NO DELPHI 2010 - PARTE 1, 2 e 3

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

Selecione o botão e no Object Inspector altere a propriedade Caption para Iterar JSONArray. Altere também a propriedade Name para BtnIterarJSONArray.

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

procedure TForm1.BtnIterarJSONArrayClick(Sender: TObject);
var
 jsonObj, jSubObj: TJSONObject;
 ja: TJSONArray;
 jp, jSubPar: TJSONPair;
 i, j: integer;
begin
   Form1.Memo1.Lines.Clear;

   jsonObj := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(
   '{"result":[{"Nome":"DELMAR","Cidade":"AJURICABA","Bairro":"CENTRO"},
{"Nome":"DALVAN","Cidade":"IJUÍ","Bairro":"JARDIM"}]}'
   ), 0) as TJSONObject; 
//dada a seguinte string em notação JSON que será convertida pela função ParseJSONValue
//em um objeto nativo do delphi do tipo TJSONObject

   jp := TJSONPair.Create;
   jp := jsonObj.Get(0);  //pega o par zero

   ja := TJSONArray.Create;
   ja := (jp.JsonValue as TJSONArray); // do par zero pega o valor, que é array
//quantidade de pares do objeto
   Form1.Memo1.Lines.Add('quantidade de elementos ' +   IntToStr(ja.Size)); 
   jSubObj:= TJSONObject.Create;
   jSubPar := TJSONPair.Create;

   for i := 0 to ja.Size - 1 do //itera o array para pegar cada elemento
   begin
      jSubObj := (ja.Get(i) as TJSONObject); //pega cada elemento do array, onde cada
//elemento é um objeto, neste caso, em função da string JSON montada acima
      Form1.Memo1.Lines.Add('');
      Form1.Memo1.Lines.Add('No elemento ' + IntToStr(i) + 
' a quantidade de pares do objeto é = ' +  IntToStr(jSubObj.Size) ); //quantidade de pares do objeto
      for j := 0 to jSubObj.Size - 1 do  //itera o objeto para pegar cada par
      begin
         jSubPar := jSubObj.Get(j);  //pega o par no índice j
 //do par pega separado a chave e o valor usando Value
         Form1.Memo1.Lines.Add(jSubPar.JsonString.Value + ' : ' + jSubPar.JsonValue.Value);
      end;
   end;
end;

Abaixo segue uma sugestão de como dispor os objetos no formulário e o resultado do botão Iterar JSONArray.

Layout do formulário

Figura 1: Layout do formulário

Salve o projeto.

Pressione F9 para compilar e executar o projeto.

Clique no botão Iterar JSONArray e observe o resultado.

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?