未捕获的语法错误:意外的令牌:getJSON
Posted
技术标签:
【中文标题】未捕获的语法错误:意外的令牌:getJSON【英文标题】:Uncaught Syntax Error: Unexpected Token : getJSON 【发布时间】:2014-05-09 17:06:12 【问题描述】:我正在尝试使用我的 JSON 文件中的数据动态填充我的页面我收到此错误
"Uncaught Syntax Error: Unexpected Token :" on line 2.
这是我的 json 文件,还有更多内容,但我不想发布整个文件。
"jobs": [
"title": "Graduate IT Development Programme #1",
"path": "/path/to/job",
"type": "Graduate job",
"location": [
"North West",
"North East"
],
"closingDate": "20/05/2014",
"continuous": false,
"skills": [
"html",
"CSS",
"javascript",
"Java",
"CI",
"Testing"
],
"contract": "Permanent",
"salary":
"lower": 14501,
"upper": 17000,
"currency": "£"
,
"employer":
"name": "Mercer",
"href": "/path/to/employer",
"logo": "img/mercer-logo.png"
,
"title": "Web Developer",
"path": "/path/to/job",
"type": "Graduate job",
"location": ["Greater London"],
"continuous": true,
"skills": [
"HTML",
"CSS",
"JavaScript"
],
"salary":
"lower": 16000,
"upper": 21000,
"currency": "€"
,
"employer":
"name": "FDM plc",
"href": "/path/to/employer",
"logo": "img/fdm-logo.png"
,
"title": "Front-end Web Developer",
"path": "/path/to/job",
"type": "Graduate scheme",
"location": ["Greater London"],
"closingDate": "20/04/2014",
"continuous": false,
"skills": [
"HTML",
"CSS",
"Java",
"Testing"
],
"salary":
"lower": 17001,
"upper": 19500,
"currency": "£"
,
"employer":
"name": "British Airways plc",
"href": "/path/to/employer",
"logo": "img/british-airways-logo.png"
]
这是我的 .getJSON 函数(document.write 在它工作之前只是临时的)
$(document).ready(function()
$.getJSON( 'js/jobs.json',function( result )
document.write(result.jobs.title);
);
);
所以我不确定问题出在哪里。看了其他问题和其他解决方案后,我感到比以前更加困惑了。
【问题讨论】:
这段代码似乎是按原样工作的,也许你应该考虑发布文件,或者至少是它结束的方式(带有右括号)。 您可以尝试使用其中一种工具验证您的 JSON,例如,jsonformatter.curiousconcept.com。 我将 JSON 通过您提供的验证器进行了处理,结果很好。我已经编辑了帖子并添加了完整的 JSON 文件。 【参考方案1】:尝试使用 stringify,如下所示
$(document).ready(function()
$.getJSON( 'js/jobs.json',function( result )
var jsonString = JSON.stringify(result);
var result = JSON.parse(jsonString);
console.log(result);
//document.write(result.jobs.title);
);
);
希望对你有所帮助。
【讨论】:
【参考方案2】:如果你看过 json 结构,jobs
是一个对象数组。因此title
不能直接访问。例如,您应该通过索引来获取它。
$(document).ready(function ()
$.getJSON('js/jobs.json', function (result)
// in case the result is not in json data type
// otherwise not necessary
result = JSON.parse(result);
result.jobs.map(function (v)
console.log(v.title);
document.write(v.title);
);
);
);
DEMO
EDITED DEMO
【讨论】:
您好,感谢这对我有很大帮助,从文件中获取数据。然而,错误仍然出现在我身上。无论如何,它似乎不会影响代码,我主要是想更好地了解错误发生的原因。 @user3477885 我假设响应是用数据类型 json 很好地定义的。如果您不确定它,请解析它以确保您具有正确的格式。查看我的编辑【参考方案3】:如果在删除该 AJAX 调用后出现错误,则问题实际上可能出在您的某个 HTML 页面中,该页面试图包含诸如
之类的内容<script src="js/myJsonFile.json"></script>
如果是这种情况,您只需删除该行,因为您想通过 AJAX 调用加载文件,而无需尝试将文件包含在标题中
【讨论】:
以上是关于未捕获的语法错误:意外的令牌:getJSON的主要内容,如果未能解决你的问题,请参考以下文章
“未捕获的语法错误:意外的令牌:”与 $http.jsonp
致命错误:未捕获的异常“Phalcon\Mvc\Model\Exception”与消息“语法错误,意外令牌>,