将 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);    

有什么建议吗?

除了两个问题外,您提出的代码看起来不错。

  1. 我希望编译器报告第一个问题:删除 :2:2。 IIRC,该符号保留给 WriteLn 语句。

  2. 如果您阅读代码,第二个问题应该很明显:在最后一行,您打印的是汇率而不是最终金额。