Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Load a JsonArray
See more JSON Examples
Demonstrates how to load a JsonArray.Note: This example requires Chilkat v9.5.0.64 or greater.
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
a: TJsonArray;
json: TJsonObject;
abc: TJsonArray;
begin
// This example requires Chilkat v9.5.0.64 or greater.
// Loading into a new JSON array is simple and straightforward.
a := TJsonArray.Create;
a.Load('[ 1,2,3,4 ]');
// Output: [1,2,3,4]
WriteLn(a.Emit());
WriteLn('--------');
// The JsonArray's Load and LoadSb methods have a peculiar behavior when
// it is already part of a JSON document. In this case, the JsonArray
// becomes detached, and the original document remains unchanged.
// This is intentional due to the nature of the internal implementation.
// For example:
json := TJsonObject.Create;
json.Load('{ "abc": [ 1,2,3,4 ] }');
// Output: (json) {"abc":[1,2,3,4]}
WriteLn('(json) ' + json.Emit());
WriteLn('--------');
abc := json.ArrayOf('abc');
// When Load is called, abc becomes it's own document, and the original is not modified.
abc.Load('[ 5,6,7,8 ]');
// Output: (abc) [5,6,7,8]
WriteLn('(abc) ' + abc.Emit());
WriteLn('--------');
// Output: (json) {"abc":[1,2,3,4]}
WriteLn('(json) ' + json.Emit());
WriteLn('--------');
abc.Free;
a.Free;
json.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.