Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Create a JSON Array of Objects
See more JSON Examples
Demonstrates how to create a JSON array of objects.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.JsonArray,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
arr: TJsonArray;
obj: TJsonObject;
begin
success := False;
arr := TJsonArray.Create;
obj := TJsonObject.Create;
// Create a new and empty JSON object in the 1st position of the JSON array
// and return the reference in the last argument.
arr.AddObjectAt2(0,obj);
obj.UpdateString('Name','Otto');
obj.UpdateInt('Age',29);
obj.UpdateBool('Married',False);
// Create a new and empty JSON object in the 2nd position of the JSON array
// and return the reference in the last argument.
arr.AddObjectAt2(1,obj);
obj.UpdateString('Name','Connor');
obj.UpdateInt('Age',43);
obj.UpdateBool('Married',True);
// Create a new and empty JSON object in the 3rd position of the JSON array
// and return the reference in the last argument.
arr.AddObjectAt2(2,obj);
obj.UpdateString('Name','Ramona');
obj.UpdateInt('Age',34);
obj.UpdateBool('Married',True);
// Examine what we have:
arr.EmitCompact := False;
WriteLn(arr.Emit());
// The output is:
// [
// {
// "Name": "Otto",
// "Age": 29,
// "Married": false
// },
// {
// "Name": "Connor",
// "Age": 43,
// "Married": true
// },
// {
// "Name": "Ramona",
// "Age": 34,
// "Married": true
// }
// ]
arr.Free;
obj.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.