Advertisement
Guest User

Untitled

a guest
Nov 6th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.06 KB | None | 0 0
  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows,
  7.   Winapi.Messages,
  8.   System.SysUtils,
  9.   System.Variants,
  10.   System.Classes,
  11.   Vcl.Graphics,
  12.   Vcl.Controls,
  13.   Vcl.Forms,
  14.   Vcl.Dialogs,
  15.   Vcl.StdCtrls;
  16.  
  17. type
  18.   TForm2 = class(TForm)
  19.     Button1: TButton;
  20.     procedure Button1Click(Sender: TObject);
  21.   private
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26.  
  27. type
  28.   TEntityDetails = packed record
  29.     organizationType: string;
  30.     numberOfOwners: Integer;
  31.     dateOfFoundation: TDateTime;
  32.   end;
  33.  
  34.   TNaturalDetails = packed record
  35.    lastName: string;
  36.    firstName: string;
  37.    middleName: string;
  38.    dateOfBirth: TDateTime;
  39.    gender: string;
  40.    maritalStatus: string;
  41.    numberOfFamilyMembers: Integer;
  42.   end;
  43.  
  44.   TAddressDetail = packed record
  45.     value: string;
  46.   end;
  47.   TAddressArea = TArray<TAddressDetail>;
  48.  
  49.   TData = packed record
  50.     customerNumber: string;
  51.     &type: string;
  52.     name: string;
  53.     entityDetails: TEntityDetails;
  54.     naturalDetails: TNaturalDetails;
  55.     idDocument: string;
  56.     address: string;
  57.     addressArea: TAddressArea;
  58.   end;
  59.   TDatas = TArray<TData>;
  60.  
  61.  
  62. var
  63.   Form2: TForm2;
  64.  
  65. implementation
  66.  
  67. {$R *.dfm}
  68.  
  69. uses
  70.   SynCommons;
  71.  
  72. const
  73.   JsonToDeserialize = '[{"customerNumber":"string","type":"string","name":"string","entityDetails":{"organizationType":"string","numberOfOwners":0,"dateOfFoundation":"2019-11-06T17:10:00"},' +
  74.                       '"naturalDetails":{"lastName":"string","firstName":"string","middleName":"string","dateOfBirth":"2000-01-01","gender":"string","maritalStatus":"string","numberOfFamilyMembers":0},' +
  75.                       '"idDocument":"string","address":"string","addressArea":[{"value":"string"}]}]';
  76.  
  77. procedure TForm2.Button1Click(Sender: TObject);
  78. var
  79.   MyRec: TDatas;
  80.   LJson: RawUTF8;
  81. begin
  82.   LJson := JsonToDeserialize;
  83.  
  84.   if SynCommons.DynArrayLoadJSON(MyRec, Pointer(LJson), TypeInfo(TDatas)) = nil then
  85.     ShowMessage('Json de-serialization failed')
  86.   else
  87.     ShowMessage('Json successfully transfered in record');
  88. end;
  89.  
  90. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement