我正在使用AJAX请求。这是我第一次使用JSON或其中任何一种方法。 ajax实用程序将onreadystatechange回调的参数作为我正在请求的文件的responseText或responseXML返回。使用简单的info.txt
和request.responseText
可以正常工作但是当我尝试info.js
和JSON.parse
时,当我多次检查我的语法时,它会返回“意外的令牌ILLEGAL”正确。这是JSON:
JSON:
{
first: 1,
second: 2
}
答案 0 :(得分:11)
JSON.parse()
语法非常严格。键/值对应具有以下形式:
string:value
因此“first”和“second”应该是JSON对象中的字符串。 将您的JSON更改为以下代码,它应该是正确的
{
"first": 1,
"second": 2
}
答案 1 :(得分:5)
您似乎已经在成功回调中使用了jQuery。 jQuery还有执行AJAX请求的方法,例如$.ajax
使你的AJAX自定义函数变得毫无用处。在您的情况下,您似乎在请求与JSON不同的javascript文件(.js)。所以:
(function() {
$.getScript('json.js', function(result) {
// TODO: do something with the result
});
})();
或者如果它是JSON:
(function() {
$.getJSON('json.js', function(result) {
// TODO: do something with the result
});
})();
据说你仍然可以继续使用你的方法,但如果JSON.parse(e)
不包含有效的JSON字符串,json.js
将始终失败。要验证它是否包含有效的JSON字符串,您可以在http://jsonlint.com