unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses SuperObject;
//類型
procedure TForm1.Button1Click(Sender: TObject);
function GetJSonType(I: ISuperObject): string;
begin
case I.DataType of
stNull: Result := 'stNull';
stBoolean: Result := 'stBoolean';
stDouble: Result := 'stDouble';
stInt: Result := 'stInt';
stObject: Result := 'stObject';
stArray: Result := 'stArray';
stString: Result := 'stString';
stMethod: Result := 'stMethod';
end;
end;
var
jo: ISuperObject;
begin
jo := SO('{A:1, B:2}');
ShowMessage(GetJSonType(jo)); {stObject}
jo := SO;
ShowMessage(GetJSonType(jo)); {stObject}
jo := SO('abc');
ShowMessage(GetJSonType(jo)); {stString}
jo := SO(123);
ShowMessage(GetJSonType(jo)); {stInt}
jo := SO('123');
ShowMessage(GetJSonType(jo)); {stInt}
jo := SO(3.14);
ShowMessage(GetJSonType(jo)); {stDouble}
jo := SO('3.14');
ShowMessage(GetJSonType(jo)); {stDouble}
jo := SO(False);
ShowMessage(GetJSonType(jo)); {stBoolean}
jo := SO('[1,2,3,a,b,c]');
ShowMessage(GetJSonType(jo)); {stArray}
jo := TSuperObject.Create(stMethod);
ShowMessage(GetJSonType(jo)); {stMethod}
jo := SO('null');
ShowMessage(GetJSonType(jo)); {stNull}
end;
//判斷
procedure TForm1.Button2Click(Sender: TObject);
var
jo: ISuperObject;
begin
jo := SO('[]');
if jo.DataType = stArray then ShowMessage('stArray');
if ObjectIsType(jo, stArray) then ShowMessage('stArray');
end;
end.