我正在尝试制作一个程序,可以使用实时汇率将给定的货币兑换为另一种货币。
这就是我从teratesatesapi.io获取数据的方式:

    URL url = new URL("https://api.exchangeratesapi.io/latest?symbols=USD,GBP");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");

    BufferedReader in = new BufferedReader(new InputStreamReader(
        con.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null) {
      System.out.println(inputLine);
    }

该代码返回什么是当前汇率({"rates":{"USD":1.1029,"GBP":0.84183},"base":"EUR","date":"2020-01-30"}),但我不知道如何将1.1029转换为方程式。

最佳答案

“基础”是欧元。如果您在他们的github页面here上查看,您会在自述文件中看到“默认情况下,汇率以欧元报价。通过在请求中设置基本参数,以其他货币报价”。所以这意味着,如果您输入100,它的汇率为100欧元。因此,找到另一个值是:

金额*汇率=该代码的值

因此,在这个100欧元的示例中:

100 * 1.1029 = $ 110.29美元。

编辑:根据您的评论的更新。使用可以找到here的org.json库,这就是获取值的方式。

  public static void main(String[] args) throws ParseException {
    String jsonString = "{ \"rates\" : { \"USD\" : 1.1029, \"GBP\" : 0.84183 }, \"base\" : \"EUR\", \"date\" : \"2020-01-30\" }";
    double rate = getExchangeRate(jsonString);
    System.out.println(rate);
  }


  public static double getExchangeRate(String jsonInput) {
    JSONObject object = new JSONObject(jsonInput);
    double rate = object.getJSONObject("rates").getDouble("USD");
    return rate;
  }

输出:
1.1029

如果您不熟悉这种用法,并且JSON使您感到困惑,建议您阅读一些有关其工作原理的教程。一个好的开始是here

我希望这有帮助!

关于java - 从Java中的URL提取实时汇率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59992513/

10-10 06:13