You are not logged in.
Pages: 1
Serwer site
TFirmaObjArray = array of TFirma;
TFirma = class(TPersistentWithCustomCreate)
...
property nazwa : RawUTF8 index 250 read fFirmanazwa write fFirmanazwa;
...
end;
TKonfiguracja = class(TPersistentWithCustomCreate)
private
ffirma: TFirma;
ffir: TFirmaObjArray;
function GetFirmaCount: Integer;
public
constructor Create; Override;
Destructor Destroy; Override;
function Add(): TFirma;
property FirmaCount : Integer read GetFirmaCount;
published
property firma : TFirma read ffirma write ffirma;
property fir: TFirmaObjArray read ffir write ffir;
end;
serialise
IRemoteSQL = interface(IInvokable)
['{8ECE1EBB-49CB-436E-8D36-6284B55189C1}']
function KonfiguracjaGet():RawUTF8;
...
end;
function TServiceRemoteSQL.KonfiguracjaGet: RawUTF8;
var Konfiguracja : TKonfiguracja;
Firma : TFirma;
begin
Konfiguracja := TKonfiguracja.Create;
try
Konfiguracja.Firma:= TFirma.Create;
Konfiguracja.Firma.nip:='test';
with Konfiguracja.Add() do
begin
nazwa :='Firma 1';
miejscowosc:='Łomża';
end;
...
TJSONSerializer.RegisterObjArrayForJSON([TypeInfo(TFirmaObjArray), TFirma]);
result := ObjectToJSON(Konfiguracja, []);
result is
{
"firma": {
"IDFirmy": 0,
...
},
"fir": [{
"nazwa": "Firma 1",...
},
...
{
"nazwa": "Firma 4",...
}
]
}
Client Site
JSON:=mainform.fService.KonfiguracjaGet();
Konfiguracja := TKonfiguracja.Create;
JSONToObject(Konfiguracja,@JSON[1],Valid);
How to reverse serialization correctly?
Or maybe you can do it better?
Last edited by konsul41 (2020-06-19 15:59:37)
Offline
But this is greatly reduced, and only what is needed is cut out
Last edited by konsul41 (2020-06-19 15:40:21)
Offline
I made collections and works.
Offline
Pages: 1