Sample code for 30+ languages & platforms
Delphi DLL

JSON AddObjectCopyAt Example

Demonstrates the AddObjectCopyAt function.

Note: This example requires Chilkat v9.5.0.82 or above.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
json: HCkJsonObject;
json2: HCkJsonObject;

begin
json := CkJsonObject_Create();
CkJsonObject_Load(json,'{ "name": "John", "marbles": 100 }');

json2 := CkJsonObject_Create();
CkJsonObject_Load(json2,'{"street":"1200 Elm St.","city":"Springfield","zip":60606}');

// Copy the contents of json2 to a new member object named "addr".
// Insert it in the 2nd position.
CkJsonObject_AddObjectCopyAt(json,1,'addr',json2);

Memo1.Lines.Add(CkJsonObject__emit(json));
// Expected output is:  {"name":"John","addr":{"street":"1200 Elm St.","city":"Springfield","zip":60606},"marbles":100}

// Note: Modifying the contents of json does not modify the contents of json2 (because the contents of json2 were copied).
// For example:
CkJsonObject_UpdateString(json,'addr.street','1000 Oak St.');
Memo1.Lines.Add(CkJsonObject__emit(json));
// Expected output is:  {"name":"John","addr":{"street":"1000 Oak St.","city":"Springfield","zip":60606},"marbles":100}

Memo1.Lines.Add(CkJsonObject__emit(json2));
// Expected output is: {"street":"1200 Elm St.","city":"Springfield","zip":60606}

CkJsonObject_Dispose(json);
CkJsonObject_Dispose(json2);

end;