Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Loading and Parsing a JSON Array
See more JSON Examples
A JSON array is JSON that begins with "[" and ends with "]". For example, this is a JSON array that contains 3 JSON objects.
[{"name":"jack"},{"name":"john"},{"name":"joe"}]
A JSON object, however, is JSON that begins with "{" and ends with "}". For example, this JSON is an object that contains an array.
{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}
This example shows how loading a JSON array is different than loading a JSON object.
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
strJsonArray: string;
strJsonObject: string;
jsonArray: TJsonArray;
i: Integer;
jsonObj: TJsonObject;
jsonObject: TJsonObject;
numPets: Integer;
begin
strJsonArray := '[{"name":"jack"},{"name":"john"},{"name":"joe"}]';
strJsonObject := '{"pets":[{"name":"jack"},{"name":"john"},{"name":"joe"}]}';
// A JSON array must be loaded using JsonArray:
jsonArray := TJsonArray.Create;
jsonArray.Load(strJsonArray);
// Examine the values:
i := 0;
while i < jsonArray.Size do
begin
jsonObj := jsonArray.ObjectAt(i);
WriteLn(i + ': ' + jsonObj.StringOf('name'));
jsonObj.Free;
i := i + 1;
end;
// Output is:
// 0: jack
// 1: john
// 2: joe
// A JSON object must be loaded using JsonObject
jsonObject := TJsonObject.Create;
jsonObject.Load(strJsonObject);
// Examine the values:
i := 0;
numPets := jsonObject.SizeOfArray('pets');
while i < numPets do
begin
jsonObject.I := i;
WriteLn(i + ': ' + jsonObject.StringOf('pets[i].name'));
i := i + 1;
end;
// Output is:
// 0: jack
// 1: john
// 2: joe
jsonArray.Free;
jsonObject.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.