Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
JSON Copy Objects
See more JSON Examples
Copy objects from one JSON document to another.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.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
json1: TJsonObject;
json2: TJsonObject;
i: Integer;
numMembers: Integer;
jsonObj: TJsonObject;
begin
json1 := TJsonObject.Create;
json1.UpdateString('ID1.cn','Name');
json1.UpdateString('ID1.objectGUID','GUID');
json1.UpdateString('ID2.cn','Name');
json1.UpdateString('ID2.objectGUID','GUID');
json1.EmitCompact := False;
WriteLn(json1.Emit());
// json1 contains:
// {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
json2 := TJsonObject.Create;
json2.UpdateString('Name1.ID1.cn','Name');
json2.UpdateString('Name1.ID1.objectGUID','GUID');
json2.UpdateString('Name1.ID2.cn','Name');
json2.UpdateString('Name1.ID2.objectGUID','GUID');
json2.UpdateString('Name2.ID3.cn','Name');
json2.UpdateString('Name2.ID3.objectGUID','GUID');
json2.EmitCompact := False;
WriteLn(json2.Emit());
// {
// "Name1": {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// },
// "Name2": {
// "ID3": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
// }
// Copy Name1, Name2 into json1
i := 0;
numMembers := json2.Size;
while i < numMembers do
begin
jsonObj := json2.ObjectAt(i);
json1.AppendObjectCopy(json2.NameAt(i),jsonObj);
i := i + 1;
end;
// Now see what json1 contains:
WriteLn(json1.Emit());
// {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "Name1": {
// "ID1": {
// "cn": "Name",
// "objectGUID": "GUID"
// },
// "ID2": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// },
// "Name2": {
// "ID3": {
// "cn": "Name",
// "objectGUID": "GUID"
// }
// }
// }
json1.Free;
json2.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.