Ruby-iterar sobre JSON analizado
api reddit (1)
Estás intentando iterar sobre los data
, que es un hash, no una lista. Necesita obtener la matriz de los hijos de su objeto JSON por data[''data''][''children'']
require "net/http"
require "uri"
require "json"
uri = URI.parse("http://www.reddit.com/user/brain_poop/comments/.json")
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
data[''data''][''children''].each do |child|
puts child[''data''][''body'']
end
Estoy intentando repetir una respuesta JSON analizada desde la API de reddit.
He hecho un poco de googlear y parece que otros han tenido este problema, pero ninguna de las soluciones parece funcionar para mí. Ruby está tratando a [''data] ['' children] como índices y eso está causando el error, pero solo estoy tratando de tomar estos valores del JSON. ¿Algún consejo?
Mi código:
require "net/http"
require "uri"
require "json"
uri = URI.parse("http://www.reddit.com/user/brain_poop/comments/.json")
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
data.each do |child|
print child[''data''][''body'']
end
El mensaje de error que recibo en la terminal:
api-reddit-ruby.rb:12:in `[]'': no implicit conversion of String into Integer (TypeError)
from api-reddit-ruby.rb:12:in `block in <main>''
from api-reddit-ruby.rb:11:in `each''
from api-reddit-ruby.rb:11:in `<main>''