Delphi DLL
Delphi DLL
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 DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JsonArray, StringBuilder, JsonObject;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
sbJsonArray: HCkStringBuilder;
arr: HCkJsonArray;
tagId: Integer;
tagDescription: PWideChar;
isPublic: Boolean;
i: Integer;
count: Integer;
obj: HCkJsonObject;
begin
success := False;
// 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 := CkStringBuilder_Create();
success := CkStringBuilder_LoadFile(sbJsonArray,'qa_data/json/arraySample.json','utf-8');
arr := CkJsonArray_Create();
success := CkJsonArray_LoadSb(arr,sbJsonArray);
i := 0;
count := CkJsonArray_getSize(arr);
while i < count do
begin
obj := CkJsonArray_ObjectAt(arr,i);
tagId := CkJsonObject_IntOf(obj,'tagId');
tagDescription := CkJsonObject__stringOf(obj,'tagDescription');
isPublic := CkJsonObject_BoolOf(obj,'isPublic');
Memo1.Lines.Add('tagId: ' + IntToStr(tagId));
Memo1.Lines.Add('tagDescription: ' + tagDescription);
Memo1.Lines.Add('isPublic: ' + IntToStr(Ord(isPublic)));
Memo1.Lines.Add('--');
CkJsonObject_Dispose(obj);
i := i + 1;
end;
CkStringBuilder_Dispose(sbJsonArray);
CkJsonArray_Dispose(arr);
end;