• 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;
    
    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.
  • 相关阅读:
    Windows Internals 笔记——作业
    Windows Internals 笔记——终止进程
    数据结构与算法-java-数组实现队列和栈
    数据结构与算法-java-稀疏数组
    学习笔记-java两种核心机制-JVM和GC
    python-Django-学习笔记
    python爬虫-大二时候的学习笔记
    KMP算法
    Docker
    排序与查找
  • 原文地址:https://www.cnblogs.com/cpprun/p/4787972.html
Copyright © 2020-2023  润新知