Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Build JSON with Mixture of Arrays and Objects

See more JSON Examples

Another example showing how to build JSON containing a mixture of arrays and objects.

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.JsonObject;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  json: TJsonObject;

begin
  //  We want to build the following JSON:

  //  { 
  //    "accountEnabled": true,
  //    "assignedLicenses": [
  //      { 
  //        "disabledPlans": [ "bea13e0c-3828-4daa-a392-28af7ff61a0f" ],
  //        "skuId": "skuId-value"
  //      }
  //    ],
  //    "assignedPlans": [
  //      { 
  //        "assignedDateTime": "datetime-value",
  //        "capabilityStatus": "capabilityStatus-value",
  //        "service": "service-value",
  //        "servicePlanId": "bea13e0c-3828-4daa-a392-28af7ff61a0f"
  //      }
  //    ],
  //    "businessPhones": [
  //      "businessPhones-value"
  //    ],
  //    "city": "city-value",
  //    "companyName": "companyName-value"
  //  }

  json := TJsonObject.Create;
  json.UpdateBool('accountEnabled',True);
  json.I := 0;
  json.UpdateString('assignedLicenses[i].disabledPlans[0]','bea13e0c-3828-4daa-a392-28af7ff61a0f');
  json.UpdateString('assignedLicenses[i].skuId','skuId-value');
  json.UpdateString('assignedPlans[i].assignedDateTime','datetime-value');
  json.UpdateString('assignedPlans[i].capabilityStatus','capabilityStatus-value');
  json.UpdateString('assignedPlans[i].service','service-value');
  json.UpdateString('assignedPlans[i].servicePlanId','bea13e0c-3828-4daa-a392-28af7ff61a0f');
  json.UpdateString('businessPhones[i]','businessPhones-value');
  json.UpdateString('city','city-value');
  json.UpdateString('companyName','companyName-value');

  json.EmitCompact := False;
  WriteLn(json.Emit());

  //  Output:

  //  { 
  //    "accountEnabled": true,
  //    "assignedLicenses": [
  //      { 
  //        "disabledPlans": [
  //          "bea13e0c-3828-4daa-a392-28af7ff61a0f"
  //        ],
  //        "skuId": "skuId-value"
  //      }
  //    ],
  //    "assignedPlans": [
  //      { 
  //        "assignedDateTime": "datetime-value",
  //        "capabilityStatus": "capabilityStatus-value",
  //        "service": "service-value",
  //        "servicePlanId": "bea13e0c-3828-4daa-a392-28af7ff61a0f"
  //      }
  //    ],
  //    "businessPhones": [
  //      "businessPhones-value"
  //    ],
  //    "city": "city-value",
  //    "companyName": "companyName-value"
  //  }


  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.