54 lines
1.1 KiB
ObjectPascal
54 lines
1.1 KiB
ObjectPascal
unit MobileMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
|
|
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts,
|
|
FMX.Memo, FMX.StdCtrls, FMX.Edit,
|
|
SynCrossPlatformJSON;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
lbl1: TLabel;
|
|
edtValue: TEdit;
|
|
lbl2: TLabel;
|
|
mmoJSON: TMemo;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure edtValueChangeTracking(Sender: TObject);
|
|
private
|
|
public
|
|
doc: variant;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.fmx}
|
|
|
|
procedure TForm1.edtValueChangeTracking(Sender: TObject);
|
|
begin
|
|
doc.value := edtValue.Text;
|
|
mmoJSON.Text := doc;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
var json: string;
|
|
begin
|
|
doc := JSONVariant('{"test":1234,"name":"Joh\"n\r","zero":0.0}');
|
|
assert(doc.test=1234);
|
|
assert(doc.name='Joh"n'#13);
|
|
assert(doc.name2=null);
|
|
assert(doc.zero=0);
|
|
json := doc;
|
|
assert(json='{"test":1234,"name":"Joh\"n\r","zero":0}');
|
|
doc.name2 := 3.1415926;
|
|
doc.name := 'John';
|
|
json := doc;
|
|
assert(json='{"test":1234,"name":"John","zero":0,"name2":3.1415926}');
|
|
end;
|
|
|
|
end.
|