Javascript IE6中嵌套的JSON会导致问题
我使用jQuery的Javascript IE6中嵌套的JSON会导致问题,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我使用jQuery的$.getJSON方法向JSON页面发出请求,并从返回的JSON创建一些HTML并将其放到页面上 当我有一个嵌套的JSON对象时就会出现问题,稍后我将向您展示一个示例 首先,如果我向我的JSON页面发出请求并返回以下JSON,该函数工作正常,我会在页面上看到一个漂亮的HTML元素: JSON: 这很好,没有错误 但是,只要我返回下面的JSON,函数就不起作用 ({ "variants": [ { "variantId":
$.getJSON
方法向JSON页面发出请求,并从返回的JSON创建一些HTML并将其放到页面上
当我有一个嵌套的JSON对象时就会出现问题,稍后我将向您展示一个示例
首先,如果我向我的JSON页面发出请求并返回以下JSON,该函数工作正常,我会在页面上看到一个漂亮的HTML元素:
JSON:
这很好,没有错误
但是,只要我返回下面的JSON,函数就不起作用
({
"variants": [
{
"variantId": "536",
"title": "Party Like a Rock Star for Two at the Metropolitan hotel, London ",
"price": "£299.00",
"blogs": [
{
"title": "Another test",
"author": "Sean",
},
{
"title": "This is a test",
"author": "Sean",
}
]
}
]
})
正如你所看到的,没有任何字符会导致它太坏。我也尝试过重命名这些字段,只是碰巧“blogs”、“title”或“author”是JS中的保留词(正如我所想,没有区别!)
为了确保造成问题的不是我处理数据的方式,我贴了一个警报(“到了这里”);作为$.getJSON函数中的第一段代码(见下文),它不会触发,因此我知道导致错误的不是我对数据所做的操作
$.getJSON('/ajax/cover_flow_detail.ashx?experienceId=' + arguments[0], function(d) {
alert('Got here'); // doesn't fire ?
// omitted for brevity.
}
更奇怪的是,这只发生在IE6中。IE7和FF都很好
任何朝着正确方向的努力都会被感激的,我完全被难住了
干杯,Sean在某些对象定义中,JSON结尾的逗号出现错误 (这表明您正在使用模板而不是JSON库生成JSON,这是一个错误。) IE比其他浏览器更不能原谅这个错误。
IE上失败,而其他浏览器忽略第二个元素后面的逗号。讽刺的是,它应该是错误的。我做对了。如果语法不正确,浏览器不应该松散地解析JSON。第二,应该像对待一个孩子一样对待他;那么 我相信它是解析器,因为在ExtJS中,它是严格的
还记得当关闭不好的HTML标记会被IE而不是Netscape忽略的时候吗。这一转变很有趣。非常感谢David-一双新眼睛在编程方面所能做的事情真是太神奇了!
$.getJSON('/ajax/cover_flow_detail.ashx?experienceId=' + arguments[0], function(d) {
alert('Got here'); // doesn't fire ?
// omitted for brevity.
}
var obj = {
upper: 1,
stage: 2,
};