我有一个本地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列出现意外字符

最佳答案

var data = {放在其前面时,它不再是JSON,而变成了JavaScript。 (因此,您不应该给它一个.json文件扩展名,这会鼓励服务器告诉浏览器它是JSON而不是JS)。

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

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

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

10-08 20:12
查看更多