unit Unit1;interfaceuses 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.