Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
JSON: Miscellaneous Operations
See more JSON Examples
Demonstrates a variety of JSON API methods. This example uses the following JSON document:
{
"alphabet": "abcdefghijklmnopqrstuvwxyz",
"sampleData" : {
"pi": 3.14,
"apple": "juicy",
"hungry": true,
"withoutValue": null,
"answer": 42
}
}
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
success: Boolean;
json: TJsonObject;
sampleData: TJsonObject;
begin
success := False;
json := TJsonObject.Create;
json.EmitCompact := False;
// Assume the file contains the data as shown above..
success := json.LoadFile('qa_data/json/sample2.json');
if (success = False) then
begin
WriteLn(json.LastErrorText);
Exit;
end;
// Get the "sampleData" object:
sampleData := TJsonObject.Create;
json.ObjectOf2('sampleData',sampleData);
// Demonstrate BoolAt and BoolOf
WriteLn('hungry: ' + sampleData.BoolOf('hungry'));
WriteLn('hungry: ' + sampleData.BoolAt(2));
// StringOf returns the value as a string regardless of it's actual type:
WriteLn('pi: ' + sampleData.StringOf('pi'));
WriteLn('answer: ' + sampleData.StringOf('answer'));
WriteLn('withoutValue: ' + sampleData.StringOf('withoutValue'));
WriteLn('hungry: ' + sampleData.StringOf('hungry'));
// Demonstrate IsNullOf / IsNullAt
WriteLn('withoutValue is null? ' + sampleData.IsNullOf('withoutValue'));
WriteLn('withoutValue is null? ' + sampleData.IsNullAt(3));
WriteLn('apple is null? ' + sampleData.IsNullOf('apple'));
WriteLn('apple is null? ' + sampleData.IsNullAt(1));
// IntOf
WriteLn('answer: ' + sampleData.IntOf('answer'));
// SetNullAt, SetNullOf
// Set "pi" to null
success := sampleData.SetNullAt(0);
// Set "answer" to null
success := sampleData.SetNullOf('answer');
// Show the changes:
WriteLn(json.Emit());
// Restore pi and apple:
success := sampleData.SetNumberAt(0,'3.14');
success := sampleData.SetNumberOf('answer','42');
// Show the changes:
WriteLn(json.Emit());
// Add a null value named "afterApple" just after "apple"
success := sampleData.AddNullAt(2,'afterApple');
// Add a boolean value just after "pi"
success := sampleData.AddBoolAt(1,'afterPi',False);
// Examine the changes..
WriteLn(json.Emit());
json.Free;
sampleData.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.