You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 10.4.2中从REST响应提取字符串类型的Token值

Delphi 10.4.2提取REST返回的单一字符串Token问题解决

环境与背景

使用Delphi 10.4.2开发客户端,REST服务器每2-3小时生成新Token,客户端需登录获取。在Swagger和Postman中,服务器返回HTTP 200,响应为类似"d14e02b7-ae5e-11ed-8105-005056b4f1d1"的UUID字符串。

遇到的问题

  • 在Rest Debugger的「Parameters」页添加query参数后,服务器返回HTTP 200,但在「Tabular data」选项卡选择value作为根元素并点击「Apply」时,报错:Response RootElement, "value", is not a valid path for the response JSON.
  • 在窗体上放置RecsClient、RestRequest、RestResponse、RestAdapter组件,设置RestResponse的RootElement属性为'value'或'resultData'时,出现相同错误。
  • 清空RestResponse的RootElement属性后执行RestRequest,可得到HTTP 200且Token值出现在FDMem组件,但不知如何从RestResponse中提取该单一字符串UUID值。

解决方案

此前的困惑源于误以为JSON必须用{}包裹并以键值对形式存在,实际上单独的字符串也是有效的JSON格式,JSONLint可验证其有效性。

以下两种代码可实现Token提取:

var token:String; 
token:=RestResponse1.JSONValue.Value;

或

var
  JV: TJSONValue;
  str1,str2: string;
begin
  str1:= fRefGoods.rrespLogin.Content;  
  JV:=TJSONObject.ParseJSONValue(str1);
  str2:=JV.Value;
end;

内容的提问来源于stack exchange,提问作者basti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:24:27