如何使用JAVASCRIPT调用ETH USD价格

时间:2018-10-13 10:40:10

标签: javascript jquery json

我打算从中打印ETH的美元价值

https://api.coinmarketcap.com/v1/ticker/ethereum/

使用JavaScript。但是,当我包含脚本

<script type="text/javascript">

var xmlhttp = new XMLHttpRequest();
var url = "";

xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var json = JSON.parse(this.responseText);
parseJson(json);
}
};

xmlhttp.open("GET", url, true);
xmlhttp.send();

  function parseJson(json) {
  var time = "<b>Last Updated : " + json["time"]["updated"] + "</b>";
  var usdValue = "$" + json["eth"]["price.usd"]["rate"];

  document.getElementById("data").innerHTML =
    usdValue
 }
 </script>

在我的HTML文件中,以及其他Price API的其他脚本中,以上代码未返回任何内容。我究竟做错了什么?我需要帮助。

2 个答案:

答案 0 :(得分:0)

尝试类似的方法

<body>
	<div id="data" />
	<script type="text/javascript">
		
    var json = new XMLHttpRequest(); // start a new variable to store the JSON in
json.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) { // if HTTP header 200 - ok
    var object = JSON.parse(this.responseText); // set the variable 'object' to whatever we get back, in our case it is an array of 10 different arrays

  for(var i=0;i<object.length;i++){   // looping through json

  var item = object[i];
       if(item["symbol"] === "ETH"){   // finding when symbol is ETH
              var usdValue = "$" + item["price_usd"];    // Fetching price_usd value
              document.getElementById("data").innerHTML = usdValue;

       }
   }
  }
};


json.open(
  "GET", // method
  "https://api.coinmarketcap.com/v1/ticker/ethereum/", // url
  true // async
); // initialise the request
json.send(); //send request

		
	</script>
</body>
运行代码片段

答案 1 :(得分:0)

  1. 根据https://api.coinmarketcap.com/v1/ticker/ethereum/,JSON.parse(this.responseText)的返回值将是一个json数组。因此,将json [0]传递到您的parseJson()。
  2. 已解析的json不具有“时间”或“ eth”的字段/属性。我建议您使用以下代码来获取所需的内容。

    
let time = `<b>Last Updated : ${new Date(parseInt(json['last_updated'])).toDateString()}</b>`;
let usdValue = `\$${json['price_usd']}`;