我觉得这有点奇怪。它适用于旧版本的iQuery(即1.2.x到1.3)。不过,我使用jQuery 1.4.x时出现parserrorAjax JSON解析错误
任何帮助将不胜感激。谢谢。
这是我从XMLHttpRequest.responseText
({count: 5, success: true, error: '', cache: false, data: [{column: ['Mike','Mike','Steve','Steve','Steve']}]})
我觉得这有点奇怪。它适用于旧版本的iQuery(即1.2.x到1.3)。不过,我使用jQuery 1.4.x时出现parserrorAjax JSON解析错误
任何帮助将不胜感激。谢谢。
这是我从XMLHttpRequest.responseText
({count: 5, success: true, error: '', cache: false, data: [{column: ['Mike','Mike','Steve','Steve','Steve']}]})
jQuery的1.4更新了自己的JSON解析器得到的,因此它不再接受无效JSON,它以前那样。您的服务器正在输出先前可以容忍的无效JSON,但不再是。这种变化是在release notes和documentation提到的(暂时的),而且也一直是discussionaboutit很多,如果你谷歌"jquery 1.4 JSON"
但总结:按键的JSON,是有效的,必须有他们的周围报价字符串不能被那些括号包围,并没有什么可以使用单引号作为分隔符,让你的JSON将需要:
{"count": 5, "success": true, "error": "", "cache": false, "data": [{"column": ["Mike","Mike","Steve","Steve","Steve"]}]}
,或者其可读性:
{
"count": 5,
"success": true,
"error": "",
"cache": false,
"data": [
{
"column": [
"Mike",
"Mike",
"Steve",
"Steve",
"Steve"
]
}
]
}
规格非常好,清晰明了地写在http://www.json.org/的图片和图表。你也可以在JSONLint上检查你的JSON - 上面的JSON检查出来很好,但你原来的JSON会引发各种错误。
至于你需要做什么:如果你有能力改变你的服务器发出的东西,那么做 - 使它输出有效的JSON。请。 只有如果你是无法来改变服务器的行为,你必须使用上面链接的职位之一的解决方法,或使用其他一些JSON库。
一般原则:在所有情况下,正确的方法™是最好的 - 修复服务器的输出(即使这是在外部服务器/ API上提交错误)是长期的解决方案,但可能不会立即实际的。所以有时候需要解决方法,但不是最优的。
非常感谢。它的工作就像一个魅力。 非常感谢! – Henry 2010-08-09 14:48:03