我正在尝试制作一个程序,可以使用实时汇率将给定的货币兑换为另一种货币。
这就是我从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/