如何将JSON设置为本地URL的变量

Cha*_*ell 4 javascript json

显然jQuery让我愚蠢.

我有一个提供原始JSON的本地URL,我无法弄清楚如何在不使用jQuery的情况下从我的方法中使用json.

这是我用jQuery做的知道

var myJson;
$.getJSON('/local/path/to/json', function (data) { 
    myJson = data; 
});

// Now I can use myJson in a method.
Run Code Online (Sandbox Code Playgroud)

Jon*_*n M 5

要从服务器使用XMLHttpRequest对象中检索JSON字符串,如本参考中所述:

http://developer.mozilla.org/en/XMLHttpRequest

您会发现它与您需要考虑和检查的所有看不见的事情密切相关.因此库像jQuery.

要将JSON字符串转换为javascript对象,请使用JSON.parse().这是参考:

http://developer.mozilla.org/En/Using_native_JSON

这是一个例子:

function readJSON(file) {
    var request = new XMLHttpRequest();
    request.open('GET', file, false);
    request.send(null);
    if (request.status == 200)
        return request.responseText;
};

var myObject = JSON.parse(readJSON('/local/path/to/json'));
Run Code Online (Sandbox Code Playgroud)

编辑#2:感谢您在此示例中编辑Chase.一句警告.open()通过false在第3个parm中使用来使方法成为同步调用不是一个好主意.AJAX是专门为异步使用而设计的,并且使同步调用可以锁定.作为曾经认为有同步调用的地方的人,我现在发现总是有一种更好的方法来异步完成它.说到明智的话.