Converter Json to Object
Olá!
Tenho uma rotina que faz a conversão JsonObjeto e o contrário também. Tenho usado esta rotina sem problemas com datasnap, porém agora que estou implementando para Android estou com a mensagem de erro "Internal: Cannot instantiate type...". Acredito ser por causa do uso de RRTI mas não consegui achar a solução para isso.
Função:
No FireMonkey:
PS - Delphi XE 6
Tenho uma rotina que faz a conversão JsonObjeto e o contrário também. Tenho usado esta rotina sem problemas com datasnap, porém agora que estou implementando para Android estou com a mensagem de erro "Internal: Cannot instantiate type...". Acredito ser por causa do uso de RRTI mas não consegui achar a solução para isso.
Função:
{==========================================
Converte JSON para Objeto
==========================================}
class function TJsonUtil.JSONToObject<T>(AJSON: TJSONValue): T;
begin
if AJSON is TJSONNull then
Exit(nil);
if not Assigned(JSONUnMarshal) then
JSONUnMarshal := TJSONUnMarshal.Create;
result := T(JSONUnMarshal.UnMarshal(AJSON));
end;
No FireMonkey:
procedure TForm3.FormCreate(Sender: TObject);
var
oProxy : TSMClient;
ajsn : TJSONArray;
consulta : TConsultaMobile;
begin
try
ajsn := TJSONArray.Create;
ajsn := oProxy.buscarMobileConsultas;
if ajsn.Count > 0 then
begin
consulta := TConsultaMobile.Create;
//Aqui é onde ocorre o erro
consulta := TJsonUtil.JSONToObject<TConsultaMobile>(ajsn.Items[0]);
FreeAndNil(consulta);
end
else
begin
end;
finally
oProxy.Free;
end;
end;
PS - Delphi XE 6
Rafael Cruz
Curtidas 0