【发布时间】:2017-12-25 15:39:12
【问题描述】:
我正在尝试从 URL 获取 JSON 数据。我要连接的网站是:
http://www.bitven.com/assets/js/rates.js
它包含以下 JSON 字符串:
{
"USD_TO_BSF_RATE": 112268.29,
"BTC_TO_USD_RATE": 13870.9,
"ETH_TO_USD_RATE": 752.222,
"BCH_TO_USD_RATE": 2960.81,
"LTC_TO_USD_RATE": 272.476,
"XRP_TO_USD_RATE": 1.01954,
"ETC_TO_USD_RATE": 31.1101,
"DASH_TO_USD_RATE": 1178.0,
"ZEC_TO_USD_RATE": 561.377,
"XMR_TO_USD_RATE": 354.709
}
我需要获取我提到的站点中每 5 分钟更新一次的 USD_TO_BSF_RATE 的值。我的代码如下:
uses
... System.JSON, IdHTTP;
function GetUrlContent(s: string): string;
var
IdHTTP1: TIdHTTP;
begin
IdHTTP1.Create;
GetUrlContent:=IdHTTP1.Get(s);
IdHTTP1.Destroy;
end;
procedure DolarUpdate;
var
json: string;
obj: TJSONObject;
url: string;
begin
try
json:=GetUrlContent('http://www.bitven.com/assets/js/rates.js');
try
obj := TJSONObject.ParseJSONValue(json) as TJSONObject;
TabbedForm.Edit2.Text := obj.Values['USD_TO_BSF_RATE'].Value;
finally
obj.Free;
end;
except
on E : Exception do
begin
ShowMessage('Error'+sLineBreak+E.ClassName+sLineBreak +E.Message);
end;
end;
end;
我的应用程序无法正常运行,也没有返回任何消息。它只会崩溃。
我做错了什么?
【问题讨论】:
-
函数崩溃时的错误信息是什么?
-
根本没有消息
-
我不相信你。会有访问冲突。
-
事实上,另一个错误仍然存在。当我修改Edit2的内容并再次脉冲按钮时,程序崩溃了。
标签: json delphi delphi-xe7