JSON SuperObject (9) TSuperType
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; where Form1: TForm1; implementation {$R *.dfm} uses SuperObject; //Types of 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; where jo: ISuperObject; do you start: = 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; // Judgment procedure TForm1.Button2Click(Sender: TObject); where jo: ISuperObject; do you start: = SO ('[]'); if jo.DataType = stArray then ShowMessage('stArray'); if ObjectIsType(jo, stArray) then ShowMessage('stArray'); end; end.