Advertisement
Guest User

Untitled

a guest
Nov 7th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.13 KB | None | 0 0
  1. const
  2.   JsonToDeserialize =
  3.     '[{"customerNumber":"string","type":"string","name":"string","entityDetails":{"organizationType":"string","numberOfOwners":0,"dateOfFoundation":"2019-11-06T17:10:00"},'
  4.     + '"naturalDetails":{"lastName":"string","firstName":"string","middleName":"string","dateOfBirth":"2000-01-01","gender":"string","maritalStatus":"string","numberOfFamilyMembers":0},'
  5.     + '"idDocument":"string","address":"string","addressArea":[{"value":"string"}]}]';
  6.  
  7. function RefCount(const _s: AnsiString): Integer;
  8. var
  9.   ptr: PLongWord;
  10. begin
  11.   ptr := Pointer(_s);
  12.   Dec(ptr, 2);
  13.   Result := ptr^;
  14. end;
  15.  
  16. procedure TForm1.Button1Click(Sender: TObject);
  17. var
  18.   MyRec: TDatas;
  19.   LJson: RawUTF8;
  20. begin
  21.  
  22.   LJson := JsonToDeserialize;
  23.   ShowMessage(InttoStr(RefCount(AnsiString(LJson))));
  24.   UniqueRawUTF8(LJson);
  25.   ShowMessage(InttoStr(RefCount(AnsiString(LJson))));
  26.   // This will now work because we have a unique string
  27.   if SynCommons.DynArrayLoadJSON(MyRec, Pointer(LJson), TypeInfo(TDatas)) = nil then
  28.     ShowMessage('Json de-serialization failed')
  29.   else
  30.     ShowMessage('Json successfully transfered in record');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement