delphi类(记录)同json互相转换  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi类(记录)同json互相转换


delphi类(记录)同json互相转换

delphi Tokyo 10.2新增TJsonSerializer类,效率更高更快。



   

///

///Tokyo 10.2新增TJsonSerializer类,效率更高更快。

 

unit Unit2;

 

interface

 

uses

  system.JSON.Serializers,  System.Generics.Collections,

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

 

type

  TUser = record

    name: string;

    age: Integer;

  end;

 

  TPerson = class

  private

    FName: string;

    FAge: Integer;

  public

    constructor Create(const Name: String; Age: Integer);

    property Name: string read FName write FName;

    property Age: Integer read FAge write FAge;

  end;

 

  TForm2 = class(TForm)

    Memo1: TMemo;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

  private

    { Private declarations }

    persons: TObjectList

    users: TArray

  public

    { Public declarations }

  end;

 

var

  Form2: TForm2;

 

implementation

 

{$R *.dfm}

 

{ TPerson }

 

constructor TPerson.Create(const Name: String; Age: Integer);

begin

  FName := Name;

  FAge := Age;

end;

 

procedure TForm2.Button1Click(Sender: TObject);

//class2json

begin

  persons := TObjectList

  persons.Add(TPerson.Create('张三', 40));

  persons.Add(TPerson.Create('李四', 38));

  var serial: TJsonSerializer := TJsonSerializer.Create;

  Memo1.Text := serial.Serialize

  serial.Free;

  persons.Free;

end;

 

procedure TForm2.Button2Click(Sender: TObject);

//json2class

begin

  var serial: TJsonSerializer := TJsonSerializer.Create;

  persons := serial.Deserialize

  for var person: TPerson in persons do

    Memo1.Lines.Add(person.Name);         //张三  李四

  serial.Free;

  persons.Free;

end;

 

procedure TForm2.Button3Click(Sender: TObject);

//record2json

begin

  SetLength(users, 2);

  var user: TUser;

  user.name := '王五';

  user.age := 1;

  users[0] := user;

  var user2: TUser;

  user2.name := '赵六';

  user2.age := 2;

  users[1] := user2;

  var serial: TJsonSerializer := TJsonSerializer.Create;

  Memo1.Text := serial.Serialize

  serial.Free;

end;

 

procedure TForm2.Button4Click(Sender: TObject);

//json2record

begin

  var serial: TJsonSerializer := TJsonSerializer.Create;

  users := serial.Deserialize

  for var user: TUser in users do

    memo1.Lines.Add(user.name);

  serial.Free;

end;

 

end.

   

来源:https://www.cnblogs.com/hnxxcxg/p/14616324.html



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.037760019302368 seconds