首页 > 解决方案 > 将数组从 JSON 文件转换为 Javascript 数组不起作用

问题描述

即使我在 stackoverflow 上阅读了很多关于此主题的相关文章,但我无法弄清楚我在这里做错了什么。

所以我有一个包含多个对象和一个数组(audiopeakdata)的json(peak.json)文件。它看起来像这样:

{"version": 2, "channels": 1, "data": [0.1, 0.3, 0,3 ... 0.1]}

现在我想从 json 文件中读取数据数组并将其解析为一个 javascript 数组:

var array = [];
$.getJSON('peak.json', function(data) { 
    array = data.data;
}); 
console.log(array);

但是控制台日志显示数组是空的——怎么可能呢?

谢谢你的帮助

标签: javascriptarraysjson

解决方案


这是因为您试图从callback不起作用的返回数据。使用async/await

async function getData() {
  var data = await $.getJSON('peak.json')
  var array = data.data;
  console.log(array);
}
getData();

或者移动你的console.log内部回调:

var array = [];
$.getJSON('peak.json', function(data) { 
  array = data.data;
  console.log(array);
});

推荐阅读