将 JSON 数据的值传递给 Free Pascal 变量
Passing value of JSON data to Free Pascal variable
我正在尝试用 Free Pascal 编写一个小程序,它以 JSON 格式从 Fixer.io 获取当前汇率,并使用它们进行简单的货币换算。
我已经了解了以下内容,它下载了英镑到波兰兹罗提的汇率并将其打印到屏幕上。
{$mode objfpc}{$H+}
uses fphttpclient, fpjson, jsonparser;
Var
S : String;
J: TJSONData;
initialAmount, endAmount, rate: real;
begin
With TFPHttpClient.Create(Nil) do
try
S:=Get('http://api.fixer.io/latest?base=GBP');
finally
Free;
end;
J:= GetJSON(S);
writeln ('Current exchange rate of GBP to Polish złoty: ',J.FindPath('rates.PLN').AsFloat:2:2);
end.
我正在努力做的是将该汇率的值传递给可用于货币转换的变量。
大致如下:
rate := J.FindPath('rates.PLN').AsFloat:2:2;
writeln;
write ('Enter initial amount in GBP £');
readln (initialAmount);
endAmount := initialAmount * rate;
writeln (endAmount);
有什么建议吗?
除了两个问题外,您提出的代码看起来不错。
我希望编译器报告第一个问题:删除 :2:2
。 IIRC,该符号保留给 WriteLn
语句。
如果您阅读代码,第二个问题应该很明显:在最后一行,您打印的是汇率而不是最终金额。
我正在尝试用 Free Pascal 编写一个小程序,它以 JSON 格式从 Fixer.io 获取当前汇率,并使用它们进行简单的货币换算。 我已经了解了以下内容,它下载了英镑到波兰兹罗提的汇率并将其打印到屏幕上。
{$mode objfpc}{$H+}
uses fphttpclient, fpjson, jsonparser;
Var
S : String;
J: TJSONData;
initialAmount, endAmount, rate: real;
begin
With TFPHttpClient.Create(Nil) do
try
S:=Get('http://api.fixer.io/latest?base=GBP');
finally
Free;
end;
J:= GetJSON(S);
writeln ('Current exchange rate of GBP to Polish złoty: ',J.FindPath('rates.PLN').AsFloat:2:2);
end.
我正在努力做的是将该汇率的值传递给可用于货币转换的变量。
大致如下:
rate := J.FindPath('rates.PLN').AsFloat:2:2;
writeln;
write ('Enter initial amount in GBP £');
readln (initialAmount);
endAmount := initialAmount * rate;
writeln (endAmount);
有什么建议吗?
除了两个问题外,您提出的代码看起来不错。
我希望编译器报告第一个问题:删除
:2:2
。 IIRC,该符号保留给WriteLn
语句。如果您阅读代码,第二个问题应该很明显:在最后一行,您打印的是汇率而不是最终金额。