[英]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對該錯誤的容忍度較低。
具有諷刺意味的是,它應該是錯誤的。 IE瀏覽器做對了。 如果語法不正確,瀏覽器不應松散地解析JSON。 的,應視為; 然后。
我相信它是解析器,因為在EXT JS中,它是嚴格的。
請記住,當關閉不當的HTML標記將被IE而不是Netscape忽略時。 轉身有趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.