Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Firebase JSON Put and Patch
See more JSON Examples
Demonstrates how to apply Firebase put and patch events to a JSON database.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: string;
json: TJsonObject;
begin
json1 := '{"a": 1, "b": 2}';
json := TJsonObject.Create;
// Use Firebase delimiters for JSON paths.
json.DelimiterChar := '/';
json.Load(json1);
json.FirebasePut('/c','{"foo": true, "bar": false}');
// Output should be: {"a":1,"b":2,"c":{"foo":true,"bar":false}}
WriteLn('1) ' + json.Emit());
json.FirebasePut('/c','"hello world"');
// Output should be: {"a":1,"b":2,"c":"hello world"}
WriteLn('2) ' + json.Emit());
json.FirebasePut('/c','{"foo": "abc", "bar": 123}');
// Output should be: {"a":1,"b":2,"c":{"foo":"abc","bar":123}}
WriteLn('3) ' + json.Emit());
// Back to the original..
json.FirebasePut('/','{"a": 1, "b": 2}');
WriteLn('4) ' + json.Emit());
json.FirebasePut('/c','{"foo": true, "bar": false}');
json.FirebasePatch('/c','{"foo": 3, "baz": 4}');
// Output should be: {"a":1,"b":2,"c":{"foo":3,"bar":false,"baz":4}}
WriteLn('5) ' + json.Emit());
json.FirebasePatch('/c','{"foo": "abc123", "baz": {"foo": true, "bar": false}, "bax": {"foo": 200, "bar": 400} }');
// Output should be: {"a":1,"b":2,"c":{"foo":"abc123","bar":false,"baz":{"foo":true,"bar":false},"bax":{"foo":200,"bar":400}}}
WriteLn('6) ' + json.Emit());
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.