Voor json maak ik gebruik van System.Json.Writers en System.Json.Readers. Op youtube staat een filmpje van Pawel hoe het werkt. Het is supersnel. Wel heb je minimaal D10 nodig.
Het is heel makkelijk om een array te lezen.
Delphi Code:
class function TDatabase.SavetoJSON(const aDirectory : string; aSchedularJobs: TDictionary<string, TSchedulerJob>): boolean;
var
stringwriter : TStringwriter;
writer : TJsonTextWriter;
job : TSchedulerJob;
key : string;
JSONText : string;
XMLFile : TStrings;
begin
result := true;
stringwriter := TStringwriter.create;
writer := TJsonTextWriter.Create(Stringwriter);
XMLFile := TStringlist.create;
try
writer.Formatting := TJsonFormatting.Indented;
writer.WriteStartObject;
writer.WritePropertyName('taakplanner');
writer.WriteStartArray;
for key in aSchedularJobs.Keys do
begin
aSchedularJobs.TryGetValue(key,job);
writer.WriteStartObject;
writer.WritePropertyName('naamtaak');
writer.WriteValue(job.NaamTaak);
writer.WritePropertyName('category');
writer.WriteValue(job.Category);
writer.WritePropertyName('starttijd');
writer.WriteValue(job.Starttijd);
writer.WritePropertyName('eindtijd');
writer.WriteValue(job.Eindtijd);
writer.WritePropertyName('interval');
writer.WriteValue(job.interval);
writer.WritePropertyName('activeren');
writer.WriteValue(job.activeren);
writer.WritePropertyName('eenmalig');
writer.WriteValue(job.Eenmalig);
writer.WriteEndObject;
end;
writer.WriteEndArray;
writer.WriteEndObject;
JSONText := Stringwriter.ToString;
XMLFile.Text := JSONText;
XMLFile.SaveToFile(aDirectory + '\taakplanner.json');
finally
writer.free;
stringwriter.free;
XMLFile.free;
//BSON example
end;
end;
Bookmarks