Delphi ActiveX
Delphi ActiveX
Iterate over JSON Array containing JSON Objects
See more JSON Examples
Demonstrates how to load a JSON array and iterate over the JSON objects.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
sbJsonArray: TChilkatStringBuilder;
arr: TChilkatJsonArray;
tagId: Integer;
tagDescription: WideString;
isPublic: Integer;
i: Integer;
count: Integer;
obj: IChilkatJsonObject;
begin
success := 0;
// Loads the following JSON array and iterates over the objects:
//
// [
// {"tagId":95,"tagDescription":"hola 1","isPublic":true},
// {"tagId":98,"tagDescription":"hola 1","isPublic":true},
// {"tagId":101,"tagDescription":"hola 1","isPublic":true},
// {"tagId":104,"tagDescription":"hola 1","isPublic":true},
// {"tagId":107,"tagDescription":"hola 1","isPublic":true},
// {"tagId":110,"tagDescription":"hola 1","isPublic":true},
// {"tagId":113,"tagDescription":"hola 1","isPublic":true},
// {"tagId":114,"tagDescription":"hola 2","isPublic":true},
// {"tagId":111,"tagDescription":"hola 2","isPublic":true},
// {"tagId":108,"tagDescription":"hola 2","isPublic":true},
// {"tagId":105,"tagDescription":"hola 2","isPublic":true},
// {"tagId":102,"tagDescription":"hola 2","isPublic":true},
// {"tagId":99,"tagDescription":"hola 2","isPublic":true},
// {"tagId":96,"tagDescription":"hola 2","isPublic":true},
// {"tagId":97,"tagDescription":"hola 3","isPublic":true},
// {"tagId":100,"tagDescription":"hola 3","isPublic":true},
// {"tagId":103,"tagDescription":"hola 3","isPublic":true},
// {"tagId":106,"tagDescription":"hola 3","isPublic":true},
// {"tagId":109,"tagDescription":"hola 3","isPublic":true},
// {"tagId":112,"tagDescription":"hola 3","isPublic":true},
// {"tagId":115,"tagDescription":"hola 3","isPublic":true},
// {"tagId":93,"tagDescription":"new tag","isPublic":true},
// {"tagId":94,"tagDescription":"new tag","isPublic":true},
// {"tagId":89,"tagDescription":"tag 1","isPublic":true},
// {"tagId":90,"tagDescription":"tag 2","isPublic":true},
// {"tagId":91,"tagDescription":"tag private 1","isPublic":false},
// {"tagId":92,"tagDescription":"tag private 2","isPublic":false}
// ]
// Load a file containing the above JSON..
sbJsonArray := TChilkatStringBuilder.Create(Self);
success := sbJsonArray.LoadFile('qa_data/json/arraySample.json','utf-8');
arr := TChilkatJsonArray.Create(Self);
success := arr.LoadSb(sbJsonArray.ControlInterface);
i := 0;
count := arr.Size;
while i < count do
begin
obj := arr.ObjectAt(i);
tagId := obj.IntOf('tagId');
tagDescription := obj.StringOf('tagDescription');
isPublic := obj.BoolOf('isPublic');
Memo1.Lines.Add('tagId: ' + IntToStr(tagId));
Memo1.Lines.Add('tagDescription: ' + tagDescription);
Memo1.Lines.Add('isPublic: ' + IntToStr(Ord(isPublic)));
Memo1.Lines.Add('--');
i := i + 1;
end;
end;