将外部“ data.json”文件导入javascript变量

时间:2018-07-13 03:37:44

标签: javascript json

这可能是重复的,但是我找不到先前回答我的问题。

我想将.json文件导入我的javascript中,

var array = "data.json";

var array = $.getJson('data.json');

我知道这两个都是错误的,有人能指出我正确的方向吗?非常欢迎文档

2 个答案:

答案 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
    }
});

文档:http://api.jquery.com/jquery.ajax/