2013-04-21 6 views
9

il seguente pezzo di codice dovrebbe restituire un JSON:to_json ritorna stringa invece di JSON in Rails

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

    @series.to_json 

ritorno di E è la seguente:

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

Perché è restituendo una stringa invece di un jSON?

gioiello 'json' si sia installato e richiesto nella parte superiore del mio file .RB

+4

json è pensato per essere una stringa – apneadiving

+0

Credo di no. Il parser JSON per iOS non lo analizzerà, né il mio plug-in di preregistrazione JSON per Safari. Mi chiedo forse che i binari non restituiscano qualche tipo di contenuto? –

+0

Come stai cercando di analizzarlo? Codice? – Dogbert

risposta

13

ho appena risolto il mio problema. Per qualche motivo, lo as_json fa ciò che voglio piuttosto che lo to_json. Non ho capito bene perché. Aggiornerò la mia risposta se mai lo scoprirò. Questo è strano, per to_json ha funzionato prima ho cambiato il mio modulo di database di sviluppo sqlite 3 per postgresql. Ma non penso che potrebbe essere il problema, perché funzionava bene con il database Postgre di Heroku.

+6

Perché 'to_json' restituisce una stringa, quindi le virgolette sono sfuggite. 'as_json' restituisce un hash. –

Problemi correlati