js 读取 json文件

JavaScript011

js 读取 json文件,第1张

如果要使用js读取json文件,那么ajax操作是必须的了。原生ajax有点麻烦,我想你们项目一定用了什么js库,这里给个jquery的例子:

$.get('xx.json路径', function(data){

    alert(data) // data即为json文件内容里的json数据

}, 'json')

如果把这个文件的内容读取为纯文本,可以修改$.get的最后一个参数json为text,或者删掉这个参数,默认也是text。

Node.js 文档建议使用 fs 模块并自己完成读取文件和解析的工作。

这种方法比起我们接下来用的第二种方法更容易理解。

我们还可以使用 createRequire 加载 JSON 文件。

createRequire 允许您构造 CommonJS require 方法,以便可以使用典型的 CommonJS 功能,例如在 Node.js 中读取 JSON ES 模块。

前两种的区别:

JSON 模块已经存在于 Chrome 91,它看起来就像一个 ES Modules 风格的导入,只是你在最后设置了类型。

当 Chrome 中有解决方案时,它很快就会在 Node.js 中发布。

问题1:js访问本地json

如果可以这样随意访问,你打开的任何网站不就可以通过js把你本地文件全部获取到了吗,这是非常危险的;这个不是技术上的能不能,而是安全策略问题,解决方法肯定有,大概是给浏览器某种授权。

我比较推荐换一种方式来解决这个问题,你要的结果是访问json文件,如果json文件不是很大的话,何不直接用个js变量保存它的值;

另外可以考虑部署到服务器,通过ajax请求获取,通过jquery可以如下写:

$.get('/content/test.json', function(data) {

  alert(data)})

问题2:如何在前端显示

js操纵DOM,可以简单粗暴地加到body里,当然有更好展现方式,推荐单独写个div:

$('body').append(data)