java - 从java中的URL中提取实时汇率

标签 java

我正在尝试制作一个程序,使用实时汇率将给定货币兑换成另一种货币。 这是我从 Exchangeratesapi.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 欧元。因此,要找到另一个值,它将是:

金额 * 汇率 = 该符号的值(value)

在 100 欧元的例子中:

100 * 1.1029 = 110.29 美元。

编辑:根据您的评论进行更新。以下是如何使用 org.json 库获取该值,您可以在 here 中找到该库。 .

  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/

相关文章:

java - "private package"是什么意思?

java - 带有 BODY 的 Swagger POST 请求不起作用

java - 如何在邮件正文中发送图像而不是像java中的附件一样

java - Apache TelnetClient、InputStream 无法使用 Apache IOUtils 转换为字符串

java - OpenGL 2.0 ES 矩阵堆栈如何工作?

java - 具有 JPA 实体的 RESTful 客户端

java - 每当有新元素加入时,如何让数组中的元素移动 +1

java - 如何在JPanel中导致无限循环

java - 将数组内容复制到新数组

java - 如果 Java 中的正则表达式模式匹配,则提取文件的下一行数据