2011-12-14 36 views
10

Estoy tratando de analizar la respuesta JSON de la API de Wordnik. Esto está construido con Sinatra. Sigo recibiendo el error "TypeError at/word" "no se puede convertir Hash en String". ¿Estoy usando el analizador json incorrectamente?¿No se puede convertir Hash en String?

Aquí está mi código:

get '/word' do 
    resp = Wordnik.words.get_random_word(:hasDictionaryDef => 'true', :maxCorpusCount => 20, :minLength => 10) 
    result = JSON.parse(resp) 
    word = result.word 
    return word.to_s 
end 

Respuesta

21

Probablemente esté recibiendo un hash. Para convertirlo utilizar to_json:

JSON.parse(resp.to_json) 
1

No diste de cuál es la respuesta JSON que se está analizando. Pero suponiendo que es algo de la forma

{ 
    "word":"my_word" 
} 

lo que necesita hacer consecuencia [ "palabra"] para obtener el valor después de analizar la respuesta JSON.

+0

me cambiaron 'palabra = result.word' a' palabra = resultado [ "palabra"] 'pero me da el mismo error. – 585connor

Cuestiones relacionadas