2011-05-11 90 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的