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