Sample code for 30+ languages & platforms
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

Pascal (Lazarus/Delphi)
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.