2013-04-21 50 views
9

下面这段代码应该返回一个JSON:to_json Rails中返回字符串,而不是JSON

@series = @series.map do |serie| { 
    :name => serie.name, 
    :id => serie.id 
    } 

    @series.to_json 

它的回报是:

"[{\"name\":\"Barra\",\"id\":3},{\"name\":\"Botafogo 1\",\"id\":1},{\"name\":\"Botafogo 2\",\"id\":2},{\"name\":\"Tijuca\",\"id\":4}]" 

为什么它返回一个字符串,而不是一个JSON?

“JSON”宝石都被安装在我的.rb文件

+4

json的意思是字符串 – apneadiving 2013-04-21 17:25:15

+0

我不相信。 iOS JSON解析器不会解析它,我的JSON美化器插件也不会用于Safari。我不知道rails是不是返回一些内容类型? – 2013-04-21 17:28:35

+0

你是如何解析它的?码? – Dogbert 2013-04-21 17:29:13

回答

13

的顶部需要我刚刚解决了我的问题。出于某种原因,as_json做我想要的,而不是to_json。我不明白为什么。如果我知道的话,我会更新我的答案。 这很奇怪,因为to_json在将我的开发数据库表格sqlite 3更改为postgresql之前工作。但我不认为这可能是问题,因为它与Heroku的postgre数据库配合得很好。

+6

因为'to_json'返回一个字符串,所以引号被转义。 'as_json'返回一个散列。 – 2013-04-21 19:29:29

相关问题