網站製作學習誌

記錄學習製作網站的一切

JavaScript 小陷阱 (6) - JSON 在瀏覽器上的差異

Neo 老大告知我有個後台的 JS Calendar 在 IE 上無法開啟,我查了一下,發現是 IE 解釋 JSON 的關係。

我所寫的 JSON 格式的物件大致如下:

1
2
3
4
5
var options = {
a: 1,
b: 2,
c: 3<strong style="color: #F00;">,</strong>
};

注意 c: 3 後面有個逗號,這樣的物件會被 Firefox 所接受;而最後一個逗號後面的元素,會被 Firefox 視為 null 。

註:這是一種便捷寫法,方便我們可以將這些物件成員在程式碼中做搬移的動作;在 PHP 陣列和 CSS 屬性也有類似的寫法。

不過這樣的寫法在 IE 和 Opera 上就會有語法錯誤的問題了,因為正式的 JSON 規範裡並不能讓我們使用便捷語法。正確的格式應該不可以有最後一個逗號:

1
2
3
4
5
var options = {
a: 1,
b: 2,
c: 3
};

所以撰寫 JSON 格式的物件時,還是要小心不要掉入這種陷阱裡。

Comments