javascript(没有jquery) - 加载本地json文件

时间:2015-08-11 23:39:13

标签: javascript json

我有一个本地JSON文件,我通过在其前添加var data = ...转换为JS对象:

var data = {
    "people": [
        {
            "name": "Martin",
            "surname": "Smith"
        },
        {
            "name": "Jack",
            "surname": "Smith"
        }
    ]
}

我用<script src="data.json" type="text/javascript">加载它并尝试用:

解析它
var h = JSON.parse(data);

我收到以下错误:

  

SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符

2 个答案:

答案 0 :(得分:3)

当你将var data = {放在它前面时,它就会停止成为JSON并成为JavaScript。 (所以你不应该给它一个.json文件扩展名,这会鼓励服务器告诉浏览器它是JSON而不是JS。)

在这种情况下,它是一个JavaScript程序,它将对象分配给变量。

JSON.parse获取包含JSON的字符串,并将其转换为JavaScript对象(或数组或其他数据类型)。

不要解析它。它已经被JavaScript编译器解析。

答案 1 :(得分:1)

MZN JSON.parse(),您可以看到JSON.parse()应该用于什么。它用在包含JSON对象的String上,此方法会将其解析为您的data变量已经存在的格式。由于您的data变量已经是JSON格式,您的变量已准备就绪,您不需要JSON.parse()方法。