gpt4 book ai didi

python - 在 Delphi XE 中从网站的 API 获取并显示 json 数据

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:49 25 4
gpt4 key购买 nike

我正在尝试将我用 Python 编写的一段代码重写到 Delphi 中。Python代码是:

url = "https://www.bitstamp.net/api/ticker/"
response = urllib.urlopen(url)
data = json.loads(response.read())
lastvalue = data['last']

这足以将我从 bitstamp 的 API 获得的值分配给名为“lastvalue”的变量。

我想用 delphi 做同样的事情(我使用的是 delphi XE6)。我试图在这里找到一些答案,并且我能够连接到 bitstamp 的网站并获得完整的字符串,方法是:

function GetURLAsString(const aurl:  string): string;
var
lHTTP: TIdHTTP;
begin
lHTTP := TIdHTTP.Create(nil);
try
lHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
Result := lHTTP.Get(aURL);
finally
lHTTP.Free;
end;
end;

然后我用这个调用这个函数:

procedure TForm2.Button1Click(Sender: TObject);
var
mydata : string;

begin
mydata := GetURLAsString('https://www.bitstamp.net/api/ticker/');
Label1.Text := mydata;
end;

我被困在这里了。我搜索了很多,但我无法弄清楚如何将分配给“last”的值分配给 Label1.Text。

当我运行它时,我得到 {"high": "629.40", "last": "622.00", "timestamp": "1401544416", "bid": "621.99", "vwap": "617.47", "volume": "15147.30475739", "low": "602.26", "ask": "622.00"} 分配给 Label1.Text。

我希望我能够解释这个问题。我真的在这一点上停留了几天,希望有人能帮助我。

最佳答案

您可以使用 DBXJSON 单元来解析 JSON 响应。

试试这个例子

var
LJsonObj : TJSONObject;
LJsonValue : TJSONValue;
begin
mydata := GetURLAsString('https://www.bitstamp.net/api/ticker/');
LJsonObj := TJSONObject.ParseJSONValue(TEncoding.Default.GetBytes(mydata),0) as TJSONObject;
try
LJsonValue := LJsonObj.Get('last').JsonValue;
Label1.Text:= LJsonValue.Value;
finally
LJsonObj.Free;
end;
end;

关于python - 在 Delphi XE 中从网站的 API 获取并显示 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23970847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com