我有一个本地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编译器解析。