我有以名称=值对的形式读入 RESTful 服务器的数据。
服务器代码具有允许的“名称”与相应的 Delphi 类型的映射,我希望将“值”部分(以字符串格式接收)转换为相应的 TValue 变量,该变量将在处理链中进一步使用。
如果没有设置一个大的 if/else 语句来测试“名称”的映射类型,那么 RTTI 有什么办法可以提供帮助。我可以使用 TRTTIContext 的 FindType 方法获取映射类型的 PTypeInfo,并且可以看到一些带有 PTypeInfo 参数的 TValue 方法。
在这个阶段,我查看了 TValue.Cast 和 TValue.Make,但是在将“10”转换为整数时它们失败了。
我是否只是回到 if/else 方法并处理我需要处理的类型?