En este caso, como habla de recibir los datos desde un JSON, es posible que esté usando una librería que al traducirlos, use Records para almacenar las estructuras que recibe. Al menos manejando SuperObject debí manejarlo así.
Código Delphi
[-]
function JsonStringToObject < T > (JSONString: string): T;
var
ctx: TSuperRttiContext;
jso: ISuperObject;
begin
{$TYPEINFO ON}
{$METHODINFO ON}
ctx := TSuperRttiContext.Create;
try
jso := SO(JSONString);
Result := ctx.AsType(jso);
finally
FreeAndNil(ctx);
{$TYPEINFO OFF}
{$METHODINFO OFF}
end;
end;