首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用ajax从文件加载JSON对象?

如何使用ajax从文件加载JSON对象?
EN

Stack Overflow用户
提问于 2013-01-18 05:28:20
回答 4查看 46.1K关注 0票数 20

我正在使用JSON传输数据。

如果我的脚本中只包含一个JSON对象,那么我需要在HTML页面中使用Ajax读取一个文件?

我是否也需要jQuery,或者是否可以使用Ajax加载该JSON文件?

它在不同的浏览器上是不同的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-18 05:32:45

你不需要任何库,所有东西都在vanilla javascript中,可以获取json文件并解析它:

代码语言:javascript
复制
function fetchJSONFile(path, callback) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
            if (httpRequest.status === 200) {
                var data = JSON.parse(httpRequest.responseText);
                if (callback) callback(data);
            }
        }
    };
    httpRequest.open('GET', path);
    httpRequest.send(); 
}

// this requests the file and executes a callback with the parsed result once
//   it is available
fetchJSONFile('pathToFile.json', function(data){
    // do something with your data
    console.log(data);
});
票数 59
EN

Stack Overflow用户

发布于 2013-01-18 05:33:01

最有效的方法是使用纯JavaScript:

代码语言:javascript
复制
var a = new XMLHttpRequest();
a.open("GET","your_json_file",true);
a.onreadystatechange = function() {
  if( this.readyState == 4) {
    if( this.status == 200) {
      var json = window.JSON ? JSON.parse(this.reponseText) : eval("("+this.responseText+")");
      // do something with json
    }
    else alert("HTTP error "+this.status+" "+this.statusText);
  }
}
a.send();
票数 4
EN

Stack Overflow用户

发布于 2013-01-18 05:32:38

在过去,Ajax在不同的浏览器中是不同的(如果您需要支持较旧的浏览器,不幸的是,许多用户仍然在使用)。对于较老的浏览器,您需要一个像JQuery (或您自己的等效代码)这样的库来处理浏览器差异。无论如何,对于初学者来说,我可能会推荐jQuery来获得好的文档、简单的应用程序接口和快速入门,尽管MDN对JavaScript本身也很有帮助(即使您主要依赖于jQuery,您也应该逐渐了解JavaScript/DOM )。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14388452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档