Ruby - 迭代解析的 JSON

标签 ruby json api reddit

我正在尝试迭代来自 reddit 的 API 的已解析 JSON 响应。

我已经进行了一些谷歌搜索,似乎其他人也遇到了这个问题,但似乎没有一个解决方案对我有用。 Ruby 将 ['data]['children] 视为索引,这导致了错误,但我只是想从 JSON 中获取这些值。有什么建议吗?

我的代码:

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

我在终端中得到的错误信息:

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>'

最佳答案

您正在尝试遍历 data,这是一个散列,而不是列表。您需要通过 data['data']['children']

从 JSON 对象中获取子数组
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

关于Ruby - 迭代解析的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132623/

相关文章:

java - 如何上传视频到客户自己的youtube channel

javascript - Angular 5 中的 422(无法处理的实体)错误

ruby-on-rails - 如何使用 Spree Commerce REST API 上传产品图片

ruby - 使用 Aquarium 的 Ruby 异常处理中的 SystemStackError(面向方面​​的编程)

javascript - Google 自定义搜索热门查询出现错误

json - 使用 JSON 对象通过 POST 方法调用 URL,但使用 Powershell

php - 为新的 Api 使用 SOAP 或 REST

Ruby 3.0.0 似乎不使用 jemalloc

ruby - 如何加载网页并在 Ruby 中搜索单词

ios - 我如何从 viewdidload 函数中的 GET 请求函数快速排列