2012-06-26 75 views
1

本機JSON.parse在FF(使用版本13.0.1)中似乎有一個糟糕的實現,我在IE,Chrome和FF中試過以下測試代碼。前2個瀏覽器似乎正確地解析json字符串到一個對象,而FF沒有。Firefox原生JSON.parse無法解析嵌套數組屬性

var jsonObj = { 
     onetype: [ 
      {id:1,name:"First Name"}, 
      {id:2,name:"Second Name"} 
     ] 
}; 
var serializedJsonObj = JSON.parse(JSON.stringify(jsonObj)); 
serializedJsonObj.onetype[1].name; 

我認爲「第二個名字」必須要輸出的,但不是這個FF只是打印「未定義」,因爲obj.onetype屬性實際上是一個字符串,它解析爲一個對象,我們必須再次調用JSON .parse on:

var jsonObj = { 
     onetype: [ 
      {id:1,name:"First Name"}, 
      {id:2,name:"Second Name"} 
     ] 
}; 
var serializedJsonObj = JSON.parse(JSON.stringify(jsonObj)); 
JSON.parse(serializedJsonObj.onetype)[1].name; 

我錯過了什麼嗎?

+0

你究竟在哪裏試過?聽起來像一個控制檯問題。 – Bergi

+0

第一個代碼示例適用於我。你爲什麼認爲'obj.onetype'是一個字符串? – Sirko

+0

謝謝你們的見解 - 抱歉打擾。更新了問題。 –

回答

0

這是過時的Prototype.js庫包含在lib.js(誰會這樣做??)。在閱讀2條評論聲稱在我的情況下這種行爲是無效的我創建了一個測試頁與真實的情況下,我一直在遇到問題來測試它,但它不再是可再生的。