python – 从Delphi XE中的网站API获取并显示json数据
发布时间:2020-12-20 11:35:44 所属栏目:Python 来源:网络整理
导读:我试图将我用 Python编写的一段代码重写为Delphi. Python代码是: url = "https://www.bitstamp.net/api/ticker/"response = urllib.urlopen(url)data = json.loads(response.read())lastvalue = data['last'] 这足以将名为“lastvalue”的变量分配给我从bit
我试图将我用
Python编写的一段代码重写为Delphi.
Python代码是: url = "https://www.bitstamp.net/api/ticker/" response = urllib.urlopen(url) data = json.loads(response.read()) lastvalue = data['last'] 这足以将名为“lastvalue”的变量分配给我从bitstamp的API获得的值. 我想用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; 我被困在这里我搜索了很多,但我无法弄清楚如何分配给Label1.Text只是分配给“last”的值. 当我运行这个时,我得到{“high”:“629.40”,“last”:“622.00”,“timestamp”:“1401544416”,“bid”:“621.99”,“vwap”:“617.47”,“音量” :“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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |