簡體   English   中英

IE6中的嵌套JSON會導致問題

[英]Nested JSON in IE6 causes problems

我正在使用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"         
         }
     ]
})

這工作正常,沒有錯誤。

但是,一旦我返回下面的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",
                 }
             ]
         }
     ]
})

如您所見,其中沒有字符會導致其太破損。 我也嘗試過重命名字段,只是偶然地發現“博客”,“標題”或“作者”是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很好。

任何朝着正確方向的推動將不勝感激,我完全感到沮喪!

肖恩干杯

JSON中有錯誤-一些對象定義中的逗號結尾。

(這建議您使用模板而不是JSON庫來生成JSON,這是一個錯誤。)

與其他瀏覽器相比,IE對該錯誤的容忍度較低。

Internet Explorer以末尾的逗號中斷而臭名昭著

var obj = {
     upper: 1,
     stage: 2,
};

在IE上失敗,而其他瀏覽器則忽略第二個元素后的尾部逗號。

具有諷刺意味的是,它應該是錯誤的。 IE瀏覽器做對了。 如果語法不正確,瀏覽器不應松散地解析JSON。 的,應視為; 然后。

我相信它是解析器,因為在EXT JS中,它是嚴格的。

請記住,當關閉不當的HTML標記將被IE而不是Netscape忽略時。 轉身有趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM