首页 > 解决方案 > 在循环 RoR 中连接 JSON

问题描述

我想在一个查询中连接 JSON 结果并将其直接保存到 Firebase。

当我尝试这样的事情时,一切正常:

        getData = RestClient.get 'https://exampleapi.com/api/?page=1'
        getData2 = RestClient.get 'https://exampleapi.com/api/?page=2'
        dataToObj = JSON.parse(getData.body)
        dataToObj2 = JSON.parse(getData2.body)
        results = dataToObj['results'] + dataToObj2['results']
        firebase.push("results", results)

但我有 20 页,我尝试使用 for 循环,但它不起作用:

      for i in 1..20 do
          url = 'https://exampleapi.com/api/?page='
          link = url + i.to_s
          getData = RestClient.get link
          dataToObj = JSON.parse(getData.body) 
          results = dataToObj['results']
          save += results
      end
          firebase.push("results", save)

有没有可能做到这一点?

标签: ruby-on-railsapifirebase

解决方案


我看不到在哪里save定义。假设dataToObj['results']是一个数组,可以save先初始化为一个空数组;做...

save = []
(1..20).each do |i|
  get_data = RestClient.get "https://exampleapi.com/api/?page=#{i}"
  save += JSON.parse(get_data.body)['results']
end
firebase.push("results", save)

推荐阅读