如何从JSON数组中获取特定数据?

时间:2019-01-25 05:34:43

标签: javascript json

我在从数组获取JSON数据时遇到问题。

我试图打印数组数据,但是它不起作用:

left: 0;
right: 0;
top: 0;
bottom: 0;

我收到“未定义的错误”

4 个答案:

答案 0 :(得分:2)

您的问题是:

console.log(arr)
document.getElementById('asd').innerHTML=arr[0];

在您最终的.then之外,这意味着它将在首次执行代码时运行,而不是在方法收到其结果之后。相反,您需要将其放入最终的.then回调中,以便它首先填充您的数组,然后输出结果:

function myfunction(){
    var arr = [];
    fetch('https://api.blockchair.com/bitcoin-sv/blocks?a=month,median(transaction_count)')
    .then(response => response.json())
    .then(result => {
        arr.push(result);
        console.log(arr);
        document.getElementById('asd').innerHTML = JSON.stringify(arr[0]);
    });    
}

此外,如果要将输出添加到DOM,则需要.stringify以便可以正确显示数据。

答案 1 :(得分:0)

您确实需要修复回调函数,并且数组对象也存在于数据中。请参考以下代码段。

<div id='asd'>lalala</div>
<button onclick='myfunction()'>click me</button>
<script>
function myfunction(){
  var arr = [];
  fetch('https://api.blockchair.com/bitcoin-sv/blocks?a=month,median(transaction_count)')
  .then(function(response) {
       return response.json();
  }).then(function(myJson) {
    arr.push(JSON.stringify(myJson.data));
    document.getElementById('asd').innerHTML=arr[0];
  });
}
</script>

答案 2 :(得分:0)

代码中的问题是您正在使用访存来访问服务器,并且这是异步操作,因为您需要在{{1}中等待服务器的响应}功能。

您需要将数组记录在then函数中。

应该是:

then

答案 3 :(得分:0)

这就是你想要的。

function myfunction() {
  fetch('https://api.blockchair.com/bitcoin-sv/blocks?a=month,median(transaction_count)')
    .then(response => response.json())
    .then(theJson => {
      const arr = theJson.data
      document.getElementById('asd').innerHTML = JSON.stringify(arr[0])
    })
}
<div id='asd'>lalala</div>
<button onclick='myfunction()'>click me</button>