新手如何使用JavaScript读取json文件 | 您所在的位置:网站首页 › Json文件 › 新手如何使用JavaScript读取json文件 |
2023年2月27日更新: 时隔3年,这篇博客现在仍时常有小伙伴访问。 但是本博客内容在我现在看来质量一般,因此重写了一篇更简单更高效的版本 可以直接跳转这篇《新手如何使用JavaScript读取json文件 v2.0》 使用JavaScript读取json文件 前言正式开始前提条件终于可以开始了 全部代码 前言最近尝试使用js读取json文件,并调用json的数据。在网上找到各种大佬写的教程,拷贝到自己电脑上就各种报错,对于新手来说不太友好。经过一个下午的时间终于搞定,自己走了很多弯路,所以在这里做个记录,希望帮助到js新手少走弯路,欢迎大佬批评指正~ 正式开始 前提条件网上最多的方法就是让使用ajax读取,但是我自己一用,浏览器就报错 通过查资料才知道,原来是因为没有引入jquery,需要在head中引入jquery Text // 终于可以开始了json数据如下 [ { "year": 2011, "province": "湖北", "city": "武汉", "housingprise": 7954 }, { "year": 2011, "province": "河南", "city": "郑州", "housingprise": 6566 }, { "year": 2020, "province": "湖北", "city": "武汉", "housingprise": 15998 }, { "year": 2020, "province": "河南", "city": "郑州", "housingprise": 13597 } ]下面开始读取json数据 总共尝试了三种方法,这里一一进行介绍 方法一 代码如下 参考博客https://blog.csdn.net/weixin_43356295/article/details/82966046 //方法1 var data = $.parseJSON($.ajax({ url: "textJsonData.json",//json文件位置,文件名 dataType: "json", //返回数据格式为json async: false }).responseText); console.log(data); //此方法会报错:主线程中同步的 XMLHttpRequest 已不推荐使用,因其对终端用户的用户体验存在负面影响运行结果就是也能执行,但是浏览器会发出警告 网上查的方法让把 async: false改成 async: true但是改完了数据直接无法读取了,这里不找到为什么,知道原因的请告诉我 出于强迫症,肯定不能允许这种情况的出现,于是转向方法二 方法二 代码如下 参考博客https://blog.csdn.net/ClearLoveQ/article/details/90480207 //方法二 var Ajax = function () { $.getJSON("textJsonData.json", function (data) { console.log(data); }); }(); //此方法只能在内部访问数据运行结果如下,可以正确读取 但是此方法只能在$.getJSON内部访问数据,在外部无法获取,解决方法是:可以在内部传入一个函数,而函数体写在外部 于是,将上面的代码改成 var Ajax = function () { $.getJSON("textJsonData.json", function (data) { displayData(data)//传入一个函数 }); }();在外部定义displayData函数 var displayData= function(data){ console.log(data); } 方法三 与方法2类似,也需要用到外部的displayData函数,也是被最多人推荐的方法,代码如下 //方法三 $.ajax({ url: "textJsonData.json", type: "GET", dataType: "json", success: function (data) { displayData(data) } }); //类似于方法二同样正确读取数据 全部代码希望对大家起到帮助,欢迎大家批评指正! Text 测试 //方法1 var data = $.parseJSON($.ajax({ url: "textJsonData.json",//json文件位置,文件名 dataType: "json", //返回数据格式为json async: false }).responseText); console.log(data); //此方法会报错:主线程中同步的 XMLHttpRequest 已不推荐使用,因其对终端用户的用户体验存在负面影响 //方法二 var Ajax = function () { $.getJSON("textJsonData.json", function (data) { displayData(data)//传入一个函数 }); }(); //此方法只能在内部访问数据 var displayData= function(data){ console.log(data); } //方法三 $.ajax({ url: "textJsonData.json", type: "GET", dataType: "json", success: function (data) { displayData(data) } }); //类似于方法二 |
CopyRight 2018-2019 实验室设备网 版权所有 |