JavaScript API请求

时间:2019-03-25 14:06:27

标签: javascript html api

我正在尝试从此API获取数据并将其显示在我的网站上:

https://min-api.cryptocompare.com/data/pricemulti?fsyms=XTZ&tsyms=BTC,USD,EUR&api_key=e5e88b327eb7dbaa1e16e1cd35ed5148b5ac9a8563aa610ae615958868c79a61

您可以在我的代码下面找到,但我无法使其正常工作(我的网站未显示结果)。我认为我的问题是由于数据存储在一种表中: 我试图使用表“ data [0] .XTZ.BTC”获取第一个数据,但无济于事。

// Price 
// Cycle Stackexchange - Not Working
 const ul3 = document.getElementById('Price');
  const url3 = 'https://min-api.cryptocompare.com/data/pricemulti?fsyms=XTZ&tsyms=BTC,USD,EUR&api_key=e5e88b327eb7dbaa1e16e1cd35ed5148b5ac9a8563aa610ae615958868c79a61';
  fetch(url3)
  .then((resp) => resp.json())
  .then(function(data){
    if (data.length > 0) {
      let span = document.createElement('span');
      span.innerHTML = `${data[0].XTZ.BTC}`;
      ul3.appendChild(span)
    }
  })
  .catch(function(error) {
    console.log(error);
  });

我还使用此代码获得了另一个API,这个API完美地实现了

// Cycle - Working
const app = document.getElementById('root')

const container = document.createElement('div')
container.setAttribute('class', 'container')

app.appendChild(container)

var request = new XMLHttpRequest()
request.open('GET', 'https://api6.tzscan.io/v3/rolls_history/tz1NortRftucvAkD1J58L32EhSVrQEWJCEnB?number=1&page=0', true)
request.onload = function() {
  // Begin accessing JSON data here
  var data = JSON.parse(this.response)
  if (request.status >= 200 && request.status < 400) {
    data.forEach(movie => {

      const h1 = document.createElement('h1')
      h1.textContent = movie.cycle

      container.appendChild(h1)

    })
  } else {
    const errorMessage = document.createElement('marquee')
    errorMessage.textContent = `Gah, it's not working!`
    app.appendChild(errorMessage)
  }
}

request.send()

我的目标是获取BTC,EUR和USD的价格。 您可以在这里找到Codepen,在这里我尝试了不同的代码来获取价格: https://codepen.io/anon/pen/aMXeYJ

感谢您的支持。

1 个答案:

答案 0 :(得分:0)

API返回此结果:

result = {"XTZ":{"BTC":0.0001705,"USD":0.678,"EUR":0.5957}}

例如,访问美元的路径为:

console.log(result["XTZ"]["USD"]);
// output : 0.678

或者因为它是一个对象

console.log(result.XTZ.USD);
// output : 0.678

已更正功能:

function(data){
  if (data && data.XTZ) {
     let span = document.createElement('span');
     span.innerHTML = data.XTZ.BTC;
     ul3.appendChild(span)
  }
}