• JSON 之 SuperObject(4): 增、删、改



    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    uses SuperObject;
    
    //添加
    procedure TForm1.Button1Click(Sender: TObject);
    var
      jo: ISuperObject;
      i: Integer;
    begin
      jo := TSuperObject.Create;
    
      for i := 0 to 9 do jo.I['N' + IntToStr(i)] := i;
      ShowMessage(jo.AsJSon(True));
    
      for i := 0 to 9 do jo.S['N' + IntToStr(i)] := IntToStr(i);
      ShowMessage(jo.AsJSon(True));
    
      for i := 0 to 9 do jo.B['N' + IntToStr(i)] := Odd(i);
      ShowMessage(jo.AsJSon(True));
    
      for i := 0 to 9 do jo.D['N' + IntToStr(i)] := i / 2;
      ShowMessage(jo.AsJSon(True));
    
      for i := 0 to 9 do jo.O['N' + IntToStr(i)] := SO('{"A":"B"}');
      ShowMessage(jo.AsJSon(True));
    
      jo.Clear;
      ShowMessage(jo.AsJSon(True));
    end;
    
    //修改与删除
    procedure TForm1.Button2Click(Sender: TObject);
    var
      jo: ISuperObject;
      str: string;
    begin
      jo := SO('{"Name":"张三", "Age":88}');
      ShowMessage(jo.AsJSon(False, False));
    
      jo.S['Name'] := '李四';
      jo.I['Age'] := 18;
      ShowMessage(jo.AsJSon(False, False));
    
      jo.Delete('Age');
      ShowMessage(jo.AsJSon(False, False));
    
      jo.D['Size'] := 1.83;
      ShowMessage(jo.AsJSon(False, False));
    end;
    
    //TSuperArray 的增、删、改与查看
    procedure TForm1.Button3Click(Sender: TObject);
    var
      jo,item: ISuperObject;
      ja: TSuperArray;
      i: Integer;
      str: string;
    begin
      jo := SO('{"爱好":["编程","打球"]}');
      ShowMessage(jo.AsJSon(False, False));
    
      jo.A['爱好'].Add(SO('看电视'));
      ShowMessage(jo.AsJSon(False, False));
    
      ja := jo.A['爱好'];
      ja.Add(SO('游泳'));
      ShowMessage(jo.AsJSon(False, False));
    
      ja.Insert(0, SO('睡觉'));
      ShowMessage(jo.AsJSon(False, False));
    
      ja.Delete(0);
      ShowMessage(jo.AsJSon(False, False));
    
      ja.D[0] := 3.14;
      ShowMessage(jo.AsJSon(False, False));
    
      ja.O[0] := SO('{}');
      ShowMessage(jo.AsJSon(False, False));
    
      str := '';
      for i := 0 to ja.Length - 1 do str := Format('%s %s', [str, ja.S[i]]);
      ShowMessage(Trim(str));
    
      str := '';
      for item in jo['爱好'] do str := Format('%s %s', [str, item.AsString]);
      ShowMessage(Trim(str));
    
      ja.Clear;
      ShowMessage(jo.AsJSon(False, False));
    end;
    
    end.
    
  • 相关阅读:
    vue 同页面不同参数
    vue的data用到this问题
    vue轮播,不是只有左右切换的,还有只切换src的
    vue页面高度填充,不出现滚动条
    WdatePicker做出onchange效果
    总结最近移动端遇到的坑(auto-size + zepto)
    react
    ES6-set && 数组剔重
    [置顶] Jquery easyui+Jsonp+asp.net+翻页 事件版
    扩展Jquery easyui的validator插件
  • 原文地址:https://www.cnblogs.com/del/p/1588819.html
Copyright © 2020-2023  润新知