ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

十、Delphi 把Json转成Delphi实体类

2021-10-31 19:31:07  阅读:158  来源: 互联网

标签:实体类 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有