IE6中的嵌套JSON会导致问题

roy*_*e41 0 javascript jquery json getjson

我正在使用jQuery的$.getJSON方法向JSON页面发出请求,并且从返回的JSON我创建了一些HTML并将其放到页面上.

当我有一个嵌套的JSON对象时出现问题,我稍后会给你看一个例子.

首先,如果我向我的JSON页面发出请求并返回以下JSON,该函数工作正常,我看到页面上出现了一个漂亮的HTML元素:

JSON:

({
     "variants": [
         {
             "variantId": "536",
             "title": "Party Like a Rock Star for Two at the Metropolitan hotel, London ",
             "price": "£299.00"         
         }
     ]
})
Run Code Online (Sandbox Code Playgroud)

这很好,没有错误.

但是,只要我返回下面的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",
                 }
             ]
         }
     ]
})
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,其中没有任何字符会导致它太破坏.我也试过重命名这些字段,只是偶然的"博客","标题"或"作者"是JS中的保留字(正如我想的那样,没有区别!)

为了确保它不是我处理导致问题的数据的方式,我发出警报('得到这里'.); 作为我的$ .getJSON函数中的第一段代码(见下文),并且不会触发,所以我知道它不是我正在处理导致错误的数据.

$.getJSON('/ajax/cover_flow_detail.ashx?experienceId=' + arguments[0], function(d) {
        alert('Got here'); // doesn't fire ?

        // omitted for brevity.

}
Run Code Online (Sandbox Code Playgroud)

甚至更奇怪 - 这只发生在IE6中.IE7和FF很好.

任何正确方向的推动都会受到赞赏,我完全被难住了!

干杯,肖恩

Que*_*tin 9

您的JSON中有错误 - 某些对象定义中的尾随逗号.

(这表明您使用模板而不是JSON库生成JSON,这是一个错误.)

IE比其他浏览器更不容忍该错误.