标签:实体类 end string read Delphi System write Json property
01、
unit TestClass; interface uses Generics.Collections, Rest.Json; type TDataClass = class private FAA: String; FBB: String; FCC: Extended; public property AA: String read FAA write FAA; property BB: String read FBB write FBB; property CC: Extended read FCC write FCC; { function ToJsonString: string; class function FromJsonString(AJsonString: string): TDataClass; } end; TRootClass = class private FCode: Extended; FData: TArray<TDataClass>; FMsg: String; FMsgData: String; FPage: Extended; FTotal: Extended; public property code: Extended read FCode write FCode; property data: TArray<TDataClass> read FData write FData; property msg: String read FMsg write FMsg; property msgData: String read FMsgData write FMsgData; property page: Extended read FPage write FPage; property total: Extended read FTotal write FTotal; { destructor Destroy; override; function ToJsonString: string; class function FromJsonString(AJsonString: string): TRootClass; } end; implementation { TDataClass } { function TDataClass.ToJsonString: string; begin result := TJson.ObjectToJsonString(self); end; class function TDataClass.FromJsonString(AJsonString: string): TDataClass; begin result := TJson.JsonToObject<TDataClass>(AJsonString) end; } { TRootClass } { destructor TRootClass.Destroy; var LdataItem: TDataClass; begin for LdataItem in FData do LdataItem.free; inherited; end; function TRootClass.ToJsonString: string; begin result := TJson.ObjectToJsonString(self); end; class function TRootClass.FromJsonString(AJsonString: string): TRootClass; begin result := TJson.JsonToObject<TRootClass>(AJsonString) end; } end.
02、JSON文本如下:
{ "code": 200, "page": 1, "total": 1502, "msg": "ERRMSG.COMMON.SUCCESS_CODE", "data": [ { "AA": "2021-10-27 00:00:00", "BB": "CAD2007-A320-04R2", "CC": 8 }, { "AA": "DPG", "BB": "2021-10-08 10:01:55", "CC": 7 } ], "msgData": "" }
03、Delphi需要引用这些单元
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, REST.Json, System.Json, System.Types, System.Json.Types, System.Json.Writers, System.Json.Builders, TestClass, Generics.Collections, System.Json.Serializers;
4、调用方法如下:
procedure TForm1.Button4Click(Sender: TObject); var m_RootClass: TRootClass; begin m_RootClass := TJson.JSONToObject<TRootClass>(Trim(Memo1.Text)); Memo2.Lines.Add(m_RootClass.msg); end;
不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢。
标签:实体类,end,string,read,Delphi,System,write,Json,property 来源: https://www.cnblogs.com/tianpan2019/p/15490482.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。