访问 Json 对象 rails

Access Json Object rails

我正在尝试创建一个实例变量,其中包含来自该调用 (https://en.wikipedia.org/w/api.php?action=query&titles=World&generator=images&gimlimit=10&prop=imageinfo&iiprop=url|dimensions|mime&format=json)

的给定 JSON Return 中的 URL 列表

在第一个实例中,当我单独访问对象时,我得到了正确的值。但是,如果迭代以获得我得到的多个值。

undefined method `[]' for nil:NilClass (NoMethodError) error

 @links=[] 
@description= @data_hash["query"]["pages"]["-1"]["imageinfo"][0]["url"] #Works ok
url = ("https://en.wikipedia.org/w/api.php?action=query&titles=World&generator=images&gimlimit=10&prop=imageinfo&iiprop=url|dimensions|mime&format=json")
  uri = URI(url)
  response = Net::HTTP.get(uri)
  @data_hash= JSON.parse(response)
 ["url"]
 @data_hash["query"]["pages"].map { |i|

    i.map { |e|
       @links<< e['imageinfo'][0]
      } 
    }

这应该有效:

@links = @data_hash['query']['pages']
           .values
           .map { |page| page['imageinfo'].first['url'] }