Skip to content

Instantly share code, notes, and snippets.

@Al-Muhandis
Last active December 18, 2023 06:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Al-Muhandis/1a4743e6447ee16696e6ef737a031be1 to your computer and use it in GitHub Desktop.
Save Al-Muhandis/1a4743e6447ee16696e6ef737a031be1 to your computer and use it in GitHub Desktop.
Saving an object in JSON and loading it from it
// ... ... ...
uses fpjson, jsonscanner, fpjsonrtti
;
// ... ... ...
procedure LoadFromJSON(AObject: TObject; const AFileName: String);
var
ADeStreamer: TJSONDeStreamer;
AJSON: TStringList;
begin
ADeStreamer:=TJSONDeStreamer.Create(nil);
AJSON:=TStringList.Create;
try
AJSON.LoadFromFile(AFileName);
try
ADeStreamer.JSONToObject(AJSON.Text, AObject);
except
end;
finally
AJSON.Free;
ADeStreamer.Free;
end;
end;
procedure SaveToJSON(AObject: TObject; const AFileName: String);
var
AStreamer: TJSONStreamer;
AJSON: TStringList;
begin
AStreamer:=TJSONStreamer.Create(nil);
AJSON:=TStringList.Create;
try
try
AStreamer.Options:=[jsoUseFormatString]+AStreamer.Options;
AJSON.Text:=AStreamer.ObjectToJSONString(AObject);
AJSON.SaveToFile(AFileName);
except
end;
finally
AJSON.Free;
AStreamer.Free;
end;
end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment