如何使用 X-SuperObject serialize/deserialize 个对象
How to serialize/deserialize objects using X-SuperObject
可以X-SuperObject
序列化/反序列化对象吗?例如,我有以下结构:
TMyClass
private
FField: Integer;
published
property field: Integer read FField write FField;
end;
我可以使用 X-SuperObject
快速序列化/反序列化此对象的所有 published
属性,包括嵌套对象吗?如果是,怎么做?
是的,X-SuperObject 可以 serialize/deserialize 包括嵌套对象(当然有一些限制)。文档很简单,但他们的示例涵盖了基础知识。
uses
XSuperJSON, XSuperObject;
type
TSubClass = class
A: Integer;
B: Integer;
end;
TMyClass = class
private
FField: Integer;
FSampler: string;
FSubClass: TSubClass;
published
property field: Integer read FField write FField;
property subClass: TSubClass read FSubClass write FSubClass;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
MyClass: TMyClass;
S: string;
begin
Memo1.Lines.Clear;
MyClass := TMyClass.FromJSON('{"field":12}'); //,"subClass":{"A":208,"B":39}}');
if MyClass.field = 12 then
Memo1.Lines.Add('MyClass.field has the correct value of 12');
if Assigned(MyClass.subClass) and (MyClass.subClass.A = 208) then
Memo1.Lines.Add('MyClass.subClass.A has the correct value of 208');
S := MyClass.AsJSON;
Memo1.Lines.Add(S);
if not Assigned(MyClass.subClass) then
MyClass.subClass := TSubClass.Create;
MyClass.subClass.A := 345;
MyClass.subClass.B := 1024;
S := MyClass.AsJSON;
Memo1.Lines.Add(S);
end;
在学习了 PKGeorgiev 的 Delphi-JsonToDelphiClass
之后,我在 Delphi 的 System.JSON 库中也取得了很好的成功。有时需要添加一些属性以获得所需的结果,但在大多数情况下,它非常适合库存 RTL。 https://github.com/PKGeorgiev/Delphi-JsonToDelphiClass
可以X-SuperObject
序列化/反序列化对象吗?例如,我有以下结构:
TMyClass
private
FField: Integer;
published
property field: Integer read FField write FField;
end;
我可以使用 X-SuperObject
快速序列化/反序列化此对象的所有 published
属性,包括嵌套对象吗?如果是,怎么做?
是的,X-SuperObject 可以 serialize/deserialize 包括嵌套对象(当然有一些限制)。文档很简单,但他们的示例涵盖了基础知识。
uses
XSuperJSON, XSuperObject;
type
TSubClass = class
A: Integer;
B: Integer;
end;
TMyClass = class
private
FField: Integer;
FSampler: string;
FSubClass: TSubClass;
published
property field: Integer read FField write FField;
property subClass: TSubClass read FSubClass write FSubClass;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
MyClass: TMyClass;
S: string;
begin
Memo1.Lines.Clear;
MyClass := TMyClass.FromJSON('{"field":12}'); //,"subClass":{"A":208,"B":39}}');
if MyClass.field = 12 then
Memo1.Lines.Add('MyClass.field has the correct value of 12');
if Assigned(MyClass.subClass) and (MyClass.subClass.A = 208) then
Memo1.Lines.Add('MyClass.subClass.A has the correct value of 208');
S := MyClass.AsJSON;
Memo1.Lines.Add(S);
if not Assigned(MyClass.subClass) then
MyClass.subClass := TSubClass.Create;
MyClass.subClass.A := 345;
MyClass.subClass.B := 1024;
S := MyClass.AsJSON;
Memo1.Lines.Add(S);
end;
在学习了 PKGeorgiev 的 Delphi-JsonToDelphiClass
之后,我在 Delphi 的 System.JSON 库中也取得了很好的成功。有时需要添加一些属性以获得所需的结果,但在大多数情况下,它非常适合库存 RTL。 https://github.com/PKGeorgiev/Delphi-JsonToDelphiClass