#javascript #arrays #json
#javascript #массивы #json
Вопрос:
несмотря на то, что я прочитал много связанных статей по этой теме в stackoverflow, я не могу понять, что я здесь делаю не так.
Итак, у меня есть файл json (peak.json) с несколькими объектами и одним массивом (audiopeakdata). Это выглядит так:
{"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);
Но журнал консоли показывает, что массив пуст — как это может быть?
Спасибо за вашу помощь
Комментарии:
1. Данные корректно работают с
JSON.parse
2. проверьте вкладку сеть и поделитесь точными данными
3. Это потому, что вы регистрируете консоль вне обратного вызова
4. Попробуйте
array.push(data)
.
Ответ №1:
Это потому, что вы пытаетесь вернуть данные из a 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);
});