2013-04-21 1 views
9

Das folgende Stück Code ein Json zurückgeben sollte:to_json kehrt Zeichenfolge statt json in Rails

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

    @series.to_json 

Es Rückkehr ist die folgende:

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

Warum ist es Zurückgeben einer Zeichenfolge anstelle eines Json?

‚json‘ Juwel ist installiert und an der Spitze meiner .rb Datei erforderlich

+4

Json soll eine Zeichenfolge sein – apneadiving

+0

Ich glaube nicht. iOS JSON Parser wird es nicht analysieren, noch wird mein JSON Prettifier Plugin für Safari. Ich frage mich, ob rails vielleicht einen Inhaltstyp zurückgibt? –

+0

Wie versuchen Sie es zu analysieren? Code? – Dogbert

Antwort

13

ich mein Problem nur gelöst habe. Aus irgendeinem Grund as_json tut was ich will, anstatt to_json. Ich habe nicht ganz verstanden warum. Ich werde meine Antwort aktualisieren, wenn ich es jemals herausfinden werde. Das ist seltsam, für to_json arbeitete, bevor ich meine Entwicklungsdatenbank Form SQLite 3 nach PostgreSQL geändert. Aber ich glaube nicht, dass das das Problem sein könnte, denn es funktionierte gut mit Herokus Postgre-Datenbank.

+6

Da 'to_json' einen String zurückgibt, werden die Anführungszeichen mit Escapezeichen versehen. 'as_json' gibt einen Hash zurück. –