delphi JSON序列化(五)

打印 上一主题 下一主题

主题 915|帖子 915|积分 2745

关于TJSONConverters的使用
  1. unit Unit1;
  2. interface
  3. uses
  4.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  5.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Rest.JSON.Types, Rest.JsonReflect;
  6. type
  7.   TForm1 = class(TForm)
  8.     Memo1: TMemo;
  9.     procedure FormCreate(Sender: TObject);
  10.   private
  11.     { Private declarations }
  12.   public
  13.     { Public declarations }
  14.   end;
  15.   TValueObject = class
  16.   private
  17.     FValue: string;
  18.     FCreateTime: TDateTime;
  19.   public
  20.     constructor Create;
  21.     property Value: string read FValue write FValue;
  22.     property CreateTime: TDateTime read FCreateTime write FCreateTime;
  23.   end;
  24. var
  25.   Form1: TForm1;
  26. implementation
  27. {$R *.dfm}
  28. uses
  29.   REST.Json, System.Generics.Collections;
  30. procedure TForm1.FormCreate(Sender: TObject);
  31. begin
  32.   var ce := TConverterEvent.Create(TValueObject, 'FValue'); // 使用此构造函数
  33.   ce.StringConverter := function(Data: TObject; Field: string): string
  34.     begin
  35.       Result := 'haha';
  36.     end;
  37.   TJSONConverters.AddConverter(ce);
  38.   Memo1.Text := TJson.ObjectToJsonString(TValueObject.Create);
  39. end;
  40. { TValueObject }
  41. constructor TValueObject.Create;
  42. begin
  43.   inherited Create;
  44.   FValue := 'test value';
  45.   FCreateTime := Now;
  46. end;
  47. end.
复制代码
结果: {"value":"haha","createTime":"2024-01-10T17:15:33.588Z"}
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表