• quicklib json


    quicklib json 

    支持FPC和DELPHI。

    unit Unit2;
    /// <author>cxg 2022-6-12</author>
    interface
    
    uses
      quick.Json.Serializer,
      System.Generics.Collections,
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
    
    type
      TPerson = class
      private
        FName: string;
        FAge: integer;
      published
        property Name: string read FName write FName;
        property Age: Integer read FAge write FAge;
      end;
    
      TPersonList = TObjectList<TPerson>;
    
      TPersons = class
      private
        FPersons: TPersonList;
      public
        constructor Create;
        destructor Destroy; override;
      published
        property Persons: TPersonList read FPersons write FPersons;
      end;
    
    type
      TForm2 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form2: TForm2;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm2.Button1Click(Sender: TObject);
    //obj2json
    begin
      var a: TPerson := TPerson.Create;
      a.Name := '张三';
      a.Age := 8;
      var b: TPerson := TPerson.Create;
      b.Name := '李四';
      b.Age := 88;
      var p: TPersons := TPersons.Create;
      p.Persons.Add(a);
      p.Persons.Add(b);
      var serial: TJsonSerializer := TJsonSerializer.Create(slPublishedProperty);
      Memo1.Lines.Add(serial.ObjectToJson(p)); //{"Persons":[{"Name":"\u5F20\u4E09","Age":8},{"Name":"\u674E\u56DB","Age":88}]}
      p.Free;
      serial.Free;
    end;
    
    { TPersons }
    
    constructor TPersons.Create;
    begin
      FPersons := TPersonList.Create(True);
    end;
    
    destructor TPersons.Destroy;
    begin
      FPersons.Free;
      inherited;
    end;
    
    procedure TForm2.Button2Click(Sender: TObject);
    //json2obj
    begin
      var p: TPersons := TPersons.Create;
      var serial: TJsonSerializer := TJsonSerializer.Create(slPublishedProperty);
      serial.JsonToObject(p, Memo1.Text);
      for var a: TPerson in p.Persons do
        Memo1.Lines.Add(a.Name);     //张三 李四
      serial.Free;
      p.Free;
    end;
    
    procedure TForm2.FormCreate(Sender: TObject);
    begin
      Memo1.Clear;
    end;
    
    end.
    

      

  • 相关阅读:
    Mysql Bypass小结
    SQLite手工注入方法小结
    bodgeit测试平台
    Sqlite注入测试
    ASP代码审计学习笔记 -3.上传漏洞
    centos7环境下apache2.2.34的编译安装
    centos7.6环境下编译安装tengine-2.2.2的编译安装
    centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展
    Windows2016的 IIS中配置PHP7运行环境
    服务器资源迁移到aliyun对象存储及oss的权限管理配置
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/16368471.html
Copyright © 2020-2023  润新知