PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Converter Json to Object #516227

09/04/2015

0

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:

{==========================================
 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

Rafael Cruz

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar