Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Understanding JSON Array vs JSON Object
See more JSON Examples
This example explains the difference between a JSON Array and a JSON Object. A JSON Array begins with "[" and ends with "]", whereas a JSON Object begins with "{" and ends with "}".Elements contained in a JSON array are accessed by index, whereas elements in a JSON object are typically accessed by name (but can also be accessed by index).
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;
strJsonArray: string;
jsonA: TJsonArray;
strJsonObj: string;
jsonO: TJsonObject;
begin
success := False;
// A JSON array should be loaded into a Chilkat JSON array,
// whereas a JSON object should be loaded into a Chilkat JSON object.
// A JSON array may contain objects, and a JSON object may contains arrays, but
// it is the top-level (outermost) element that defines whether the JSON
// document is an array or an object.
// An array begins and ends with "[" ... "]"
// An object begins and ends with "{" ... "}"
// For example, an array containing 2 objects:
strJsonArray := '[ { "name": "Bill" }, { "name": "Ted" } ]';
// Load it into a JSON array.
jsonA := TJsonArray.Create;
success := jsonA.Load(strJsonArray);
WriteLn('number of array elements: ' + jsonA.Size);
// This is an object containing an array:
strJsonObj := '{ "characters": [ "Bill", "Ted" ] }';
// Load it into a JSON object.
jsonO := TJsonObject.Create;
success := jsonO.Load(strJsonObj);
WriteLn('number of object members: ' + jsonO.Size);
jsonA.Free;
jsonO.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.