2013-04-21 2 views
9

Следующий фрагмент кода должен возвращать JSON:to_json возвращает строку вместо JSON в Rails

@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

+0

Я верю, что нет. Анализатор iOS JSON не будет анализировать его, а также мой плагин JSON prettifier для Safari. Интересно, может быть, рельсы не возвращают какой-то контент-тип? –

+0

Как вы его разбираете? Код? – Dogbert

ответ

13

Я просто решить мою проблему. По какой-то причине as_json делает то, что я хочу, а не to_json. Я не совсем понял, почему. Я уточню свой ответ, если узнаю. Это странно, потому что to_json работал до того, как я изменил форму базы данных разработки sqlite 3 на postgresql. Но я не думаю, что это может быть проблемой, потому что она хорошо работает с почтовой базой Heroku.

+6

Потому что 'to_json' возвращает строку, поэтому кавычки экранируются. 'as_json' возвращает хэш. –

Смежные вопросы