Ever wanted to take an Object into a format that is easily persisted and back? Well now you can. New in XE6 is the REST.JSON unit. This allows you access to TJSON a class with some very helpful class methods. Using TJSON you can convert an object to a JSON string and back with a little help from generics along the way.
The following code uses a class called TFoo that has a Foo and a Fee property (string and Integer) Using TJson you can then see how to covert the object to a string and back ready for storage, transport etc.
uses REST.JSON; // Also new System.JSON
procedure TForm1.Button1Click(Sender: TObject);
var
Foo: TFoo;
begin
Foo := TFoo.Create;
try
Foo.Foo := 'Hello World';
Foo.Fee := 42;
Memo1.Lines.Text := TJson.ObjectToJsonString(Foo);
finally
Foo.Free;
end;
Foo := TJson.JsonToObject<TFoo>(Memo1.Lines.Text);
try
Foo.Fee := 100;
Memo1.Lines.Add(TJson.ObjectToJsonString(Foo));
finally
Foo.Free;
end;
end;
If you want to watch this being demo’ed this very show video shows it in action http://youtu.be/TSqWoFvjj5g
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition
I’m sorry to say this doesn’t work for every components : Don’t save interface or other kind of object definition. It gives errors like : “type tkinterface not supported” or “stack overflow”… Not a proper way to do it a this time
Understood. Do you have an article or link that might be a better solution we could use?
how to coverte TObjectList without result:
{“telefones”:{“ownsObjects”:true,”listHelper”:[{“numero”:”(11) 9 1234-5678″}]}}
This article by MVP Uwe Raabe explains how to do it: https://www.uweraabe.de/Blog/2020/03/02/serializing-generic-object-lists-with-tjson/