这可能是重复的,但是我找不到先前回答我的问题。
我想将.json文件导入我的javascript中,
var array = "data.json";
或
var array = $.getJson('data.json');
我知道这两个都是错误的,有人能指出我正确的方向吗?非常欢迎文档。
答案 0 :(得分:3)
这是将json文件导入javascript的方式。导入json文件后,您可以使用arr
变量来存储json
的值。
var arr = null;
$.ajax({
'async': false,
'global': false,
'url': "/data.json",
'dataType': "json",
'success': function (data) {
arr = data;
}
});
答案 1 :(得分:1)
如果将JSON作为字符串,则JSON.parse()
可以正常工作。由于要从文件加载json,因此需要对它执行XMLHttpRequest。例如(这是w3schools.com示例):
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
}
};
xmlhttp.open("GET", "json_demo.txt", true);
xmlhttp.send();
<!DOCTYPE html>
<html>
<body>
<h2>Use the XMLHttpRequest to get the content of a file.</h2>
<p>The content is written in JSON format, and can easily be converted into a JavaScript object.</p>
<p id="demo"></p>
<p>Take a look at <a href="json_demo.txt" target="_blank">json_demo.txt</a></p>
</body>
</html>
由于该文件不在此处,因此在这里不起作用。不过请转到以下w3schools示例:https://www.w3schools.com/js/tryit.asp?filename=tryjson_ajax
这是JSON.parse()的文档:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
以下是摘要:
JSON.parse()方法解析一个JSON字符串,构造该字符串描述的JavaScript值或对象。可以提供一个可选的reviver函数,以在返回结果对象之前对其进行转换。
以下是使用的示例:
var json = '{"result":true, "count":42}';
obj = JSON.parse(json);
console.log(obj.count);
// expected output: 42
console.log(obj.result);
// expected output: true
如果您不想使用XMLHttpRequests,那么JQUERY方式(我不确定为什么它不适合您)是http://api.jquery.com/jQuery.getJSON/
由于无法正常工作,我将尝试使用XMLHttpRequests
编辑:
您也可以尝试AJAX请求:
$.ajax({
'async': false,
'global': false,
'url': "/jsonfile.json",
'dataType': "json",
'success': function (data) {
// do stuff with data
}
});