[{"name"=>"Joe-6ren">
gpt4 book ai didi

ruby-on-rails - 从 httparty 响应访问数据

转载 作者:行者123 更新时间:2023-12-03 20:46:06 26 4
gpt4 key购买 nike

使用 httparty 我可以获得以下响应:

puts Representative.find_by_zip(46544).inspect

-->

{"results"=>[{"name"=>"Joe Donnelly", "district"=>"2", "office"=>"1218 Longworth", "phone"=>"(202) 225-3915", "link"=>"http://donnelly.house.gov/", "state"=>"IN"}]

示例来源:http://railstips.org/blog/archives/2008/07/29/it-s-an-httparty-and-everyone-is-invited/

但我无法访问数据,例如:

Representative.find_by_zip(46544).inspect["name"] 返回 nil

我如何访问此响应的各个元素?

最佳答案

Object#inspect 返回一个字符串,而不是散列。你想要这个:

Representative.find_by_zip(46544)['results'][0]['name']

这是怎么回事:Representative#find_by_zip 返回一个只有一个索引的 Hash:'results''results' 中的项是一个数组,在本例中它只包含一个元素,因此我们使用 [0] 来获取第一个(也是唯一一个)元素。该元素本身是一个具有 'name' 键的散列,该键指向返回的第一个(也是唯一一个)代表的姓名。

当你有复杂的散列和数组时,有时以更易读的方式对其进行格式化以弄清楚如何获取你想要的数据会很有用:

{ "results" => [
{ "name" => "Joe Donnelly",
"district" => "2",
"office => "1218 Longworth",
"phone" => "(202) 225-3915",
"link" => "http://donnelly.house.gov/",
"state" => "IN"
}
]
}

这应该使这里的内容更加清楚。

关于ruby-on-rails - 从 httparty 响应访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2113886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com