Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE6中嵌套的JSON会导致问题_Javascript_Jquery_Json_Getjson - Fatal编程技术网

Javascript IE6中嵌套的JSON会导致问题

Javascript IE6中嵌套的JSON会导致问题,javascript,jquery,json,getjson,Javascript,Jquery,Json,Getjson,我使用jQuery的$.getJSON方法向JSON页面发出请求,并从返回的JSON创建一些HTML并将其放到页面上 当我有一个嵌套的JSON对象时就会出现问题,稍后我将向您展示一个示例 首先,如果我向我的JSON页面发出请求并返回以下JSON,该函数工作正常,我会在页面上看到一个漂亮的HTML元素: JSON: 这很好,没有错误 但是,只要我返回下面的JSON,函数就不起作用 ({ "variants": [ { "variantId":

我使用jQuery的
$.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,
};