2011-05-11 89 views
2

我想在JavaScript解析JSON,但我得到這個錯誤的Rails:錯誤解析JSON:未定義的方法 'GSUB'

undefined method `gsub' for #<Array:0x000001054a2440> 

我的代碼如下:

<script type="text/javascript"> 
    var stuff = <%= escape_javascript(@json) %> 
    var json = stuff.parseJSON(); 
    alert("text"); 
</script> 

其中@json在控制器中定義爲@ nodes.to_json

有人可以幫助我嗎?讓JSON變成JavaScript不應該很難,但它永遠帶着我。

+0

書面也許它會是有益的,如果你注意到你正在使用的Rails的版本。另外,你想用JSON做什麼?它是否需要輸出到HTML頁面?或者你想直接用JSON響應請求? – sholsinger 2011-05-11 04:51:04

回答

2

的代碼escape_javascript是:

def escape_javascript(javascript) 
    if javascript 
    javascript.gsub(/(\\|<\/|\r\n|[\n\r"'])/) { JS_ESCAPE_MAP[$1] } 
    else 
    '' 
    end 
end 

因此,我可以得出結論,實際上@json是一個數組。

1

你正在爲數組應用gsub方法,這就是爲什麼發生未定義的方法'gsub'。 @json是數組,你不能在其上應用gsub。

+0

謝謝大家。我得到這個錯誤的原因是因爲escape_javascript。我只是補充說,因爲我認爲我需要它來解析JSON。如果不是這種情況,我怎麼才能簡單地解析JavaScript中的JSON?任何幫助將不勝感激。謝謝! – readmymsg123 2011-05-11 05:07:19

0

使用JSON.parse如果本機可用,否則包括JSON解析器,最流行的一種是由Douglas Crockford的