zoukankan      html  css  js  c++  java
  • JSON 之 SuperObject(13): 关于 SO 与 SA 函数

    通过 SuperObject 的公用函数 SO 实现一个 ISuperObject 接口非常方便;

    前面都是给它一个字符串参数, 它的参数可以是任一类型甚至是常数数组.

    SA 和 SO 都是返回一 ISuperObject;
    SO 可以产生一个 stArray 类型的 ISuperObject, 但 SA 只会产生 stArray 类型的 ISuperObject;
    SA 的参数也只能是常数数组.


    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, TypInfo;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      jo: ISuperObject;
    begin
      jo := SO(['A',1, 'B',2.5, 'C','xyz', 'D',True]);
      ShowMessage(jo.AsJSon); // {"D":true,"C":"xyz","B":2.5,"A":1}
      {显示类型名}
      ShowMessage(GetEnumName(TypeInfo(TSuperType), Ord(jo.DataType))); // stObject
    
      jo := SO(3.14);
      ShowMessage(jo.AsJSon); // 3.14
      {显示类型名}
      ShowMessage(GetEnumName(TypeInfo(TSuperType), Ord(jo.DataType))); // stDouble
    
      jo := SA(['A',1, 'B',2.5, 'C','xyz', 'D',True]);
      ShowMessage(jo.AsJSon);
      {显示类型名}
      ShowMessage(GetEnumName(TypeInfo(TSuperType), Ord(jo.DataType))); // stArray
    end;
    
    //SA 再举例
    procedure TForm1.Button2Click(Sender: TObject);
    var
      jo,ja: ISuperObject;
    begin
      ja := SA(['x','y','z']);
      
      jo := SO('{A:1, B:2}');
      jo['B'] := ja;
    
      ShowMessage(jo.AsJSon); // {"B":["x","y","z"],"A":1}
    end;
    
    end.
  • 相关阅读:
    java----设计模式--创建型模式(GOF23)
    java----作用域
    java和python对比----实例化的对象属性:
    java----关键字
    java----Java的栈,堆,代码,静态存储区的存储顺序和位置
    java----面对对象
    算法----取0~30不重复的10个整数
    算法----二分查找算法
    织梦 验证码不显示问题
    dedecms 后台修改系统设置,但是config.cache.inc.php文件不能写入
  • 原文地址:https://www.cnblogs.com/cpprun/p/4787983.html
Copyright © 2011-2022 走看看