我有几个结构如下的JSON文件(让我们称之为info.json):
{
'data': {
'title': 'Job',
'company': 'Company',
'past': [
'fulltime': [
'Former Company'
],
'intern': [
'Women & IT',
'Priority 5'
]
],
'hobbies': [
'playing guitar',
'singing karaoke',
'playing Minecraft',
]
}
}
在一个单独的JavaScript文件中,我有一个如下所示的函数:
function getJSONInfo() {
fetch('info.json').then(function(response) {
return response.json();
}).then(function(j) {
console.log(j);
});
}
当我运行getJSONInfo()
时,我一直收到此错误:
Uncaught (in promise) SyntaxError: Unexpected token '
我错过了什么?我在任何地方都没有流浪'
,所以我不确定是什么问题。
答案 0 :(得分:6)
您需要为有效json的属性设置双引号。
您可以使用http://jsonlint.com/等json验证程序来检查语法是否正确。
另外,正如shayanypn指出的那样,“过去”应该是一个对象,而不是一个数组。您试图将“过去”定义为对象文字,但使用方括号表示数组。
答案 1 :(得分:1)
你完全无效
1-你应该使用双引号
对象属性的错误语法
"past": [
"fulltime": [
"Former Company"
],
"intern": [
"Women & IT",
"Priority 5"
]
],
它应该睡觉
"past": {
"fulltime": [
"Former Company"
],
"intern": [
"Women & IT",
"Priority 5"
]
},
您的有效json是
{
"data": {
"title": "Job",
"company": "Company",
"past": {
"fulltime": [
"Former Company"
],
"intern": [
"Women & IT",
"Priority 5"
]
},
"hobbies": [
"playing guitar",
"singing karaoke",
"playing Minecraft"
]
}
}