从VCL迁移至TMS WEB Core后,System.JSON替代代码咨询
TMS WEB Core 中替代 VCL JSON 代码的方案
在TMS WEB Core中,System.JSON的API与VCL存在差异,无法直接使用GetValue<T>方法,你可以按以下方式修改代码:
原代码转换
第一行代码转换
原VCL代码:
LJsonValue := LJsonValue.GetValue<TJSonValue>('choices');
替换为TMS WEB Core可用代码:
// 先将LJsonValue转为TJSONObject,再获取'choices'对应的JSON值 LJsonValue := (LJsonValue as TJSONObject).Get('choices').JsonValue;
如果确定choices对应的是JSON数组,也可以直接转为TJSONArray(更贴合业务逻辑):
LJsonArray := (LJsonValue as TJSONObject).Get('choices').JsonValue as TJSONArray;
第二行代码转换
原VCL代码:
LJSonString := LJSonArray.Items[0].GetValue<TJSONString>('text');
替换为TMS WEB Core可用代码:
// 先将数组第一个元素转为TJSONObject,再获取'text'对应的JSON字符串 LJSonString := (LJsonArray.Items[0] as TJSONObject).Get('text').JsonValue as TJSONString;
补充说明
- TMS WEB Core中,
TJSONObject的Get方法返回TJSONPair对象,通过其JsonValue属性可获取对应的值。 - 类型转换时建议添加异常处理(比如
try...except),避免JSON结构不匹配导致程序崩溃。
内容的提问来源于stack exchange,提问作者L0pez
相关产品推荐
相关产品推荐

