• 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.
  • 相关阅读:
    1380. Lucky Numbers in a Matrix
    672. Bulb Switcher II
    1375. Bulb Switcher III
    1376. Time Needed to Inform All Employees
    1372. Longest ZigZag Path in a Binary Tree
    PHP中curl_multi并发详解【转】
    php中$_REQUEST、$_POST、$_GET的区别【转】
    Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data【转】
    PHP $_FILES函数详解【转】
    php接收二进制流【转】
  • 原文地址:https://www.cnblogs.com/cpprun/p/4787983.html
Copyright © 2020-2023  润新知