2015-02-25 2 views
0

Я пытаюсь сделать следующее, чтобы вытащить форматированный json-файл в переменную JS (json-файл правильный json).Javascript .js file to variable

var data; 
$.getJSON('../data/data.js', function(json){ 
    data = json; 
}); 
console.log(data); 

Результат:

undefined 

Когда я console.log внутри функции $.getJSON я получаю результаты.

Любая идея, что я могу делать неправильно?

+2

'getJSON' является асинхронным. 'data' будет' undefined' при его регистрации. Добавьте 'console.log()' в функцию обратного вызова, и вы увидите, что он запускается асинхронно с задержкой. – James

+0

@JayBhatt getScript() также выполняет данные, но поскольку это json - это не плохая идея? – Notflip

ответ

1

Файл, кажется, получен успешно. Однако ваша проблема заключается в том, что функция обратного вызова запускается асинхронно, поэтому данные не определяются при регистрации.

Решение:

var processFile = function (fileData) { 
    // do processing here. 
} 


var data; 
$.getJSON('../data/data.js', function(json){ 
    data = json; 
    processFile(data); 
}); 
+0

Это не 'null', это' undefined'. – Joe

+0

Спасибо, Но мне нужно использовать данные впоследствии. Как я могу это сделать? console.log предназначен для тестирования. спасибо – Notflip

+0

Здесь не проблема, цель заключается в том, что никакие значения не назначаются данным. Однако отредактировал ответ. –