我在本地系统中保存了一个JSON文件并创建了一个JavaScript文件,以便读取JSON文件并打印出数据.这是JSON文件:
{"resource":"A","literals":["B","C","D"]}
Run Code Online (Sandbox Code Playgroud)
假设这是JSON文件的路径:/Users/Documents/workspace/test.json.
任何人都可以帮我写一段简单的代码来阅读JSON文件并在JavaScript中打印数据吗?
我必须做一些非常简单的事情,但据我所知,似乎没有一种简单的方法可以做到这一点.我只想从远程源加载JSON数据,并使用jQuery将其存储在全局Javascript变量中.这就是我所拥有的:
var my_json;
$.getJSON(my_url, function(json) {
var my_json = json;
});
Run Code Online (Sandbox Code Playgroud)
my_json变量仍未定义.我认为这显然是一个范围问题.在我看来,$ .getJSON方法应该返回JSON,但它返回一个XMLHttpRequest对象.如果我这样做:
request = $.getJSON(my_url);
my_json = request.responseText.evalJSON();
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为在readystate == 4之前,responsetext保持为null.看来你必须使用回调函数来返回响应文本,因为它会在成功时触发.
这不可能是这么难!对?
我正在尝试my_jason从JSON文件"gunsList.json"的内容创建一个javascript变量(两者都存储在我的机器上的同一文件夹中).
我似乎遇到了OP在这篇文章中遇到的同样的问题,当他纠正了他有缺陷的JSON文件时解决了这个问题.认为我有同样的问题,我通过JSONLint运行我的文件(我假设这是正确的验证),它回来了干净.
借用这篇文章中的提示,我尝试使用jQuery来完成它(注意:我在现有代码的其他部分成功使用了jQuery),如下所示:
var my_json;
$.getJSON('gunList.json', function(json) {
my_json = json;
});
Run Code Online (Sandbox Code Playgroud)
当我尝试上面的方法(例如alert(my_json))时,my_json是undefined.
不可否认,我对AJAX知之甚少,但我也尝试过:
var my_json = (function () {
var my_json = null;
$.ajax({
'async': false,
'global': false,
'url': 'gunsList.json',
'dataType': "json",
'success': function (data) {
my_json = data;
}
});
return my_json;
})();
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,my_json是null.
当我将其作为变量粘贴到我的js文件中时,我在"gunsList.json"中引用数组的所有代码运行良好,但作为一个初出茅庐的程序员,我真的很高兴能够使用JSON.
我想在括号中创建一个 json 文件,仅用于存储一个包含 200 个元素的数组,并且我希望能够将该文件导入到我的“main.js”文件中,并且能够使用它,即使是数组本身不再在“main.js”中。
我怎样才能做到这一点?