【问题标题】:How to parse api request using ruby如何使用 ruby​​ 解析 api 请求
【发布时间】:2016-12-21 05:35:12
【问题描述】:

我正在学习如何在 Rails 上使用 this yelp blog 和 yelp github 的 Yelp API。我能够连接到 Yelp 服务并收到回复,但我不知道如何处理收到的回复。

这是我在Rails Console上所做的:

2.2.2 :057 >   response = client.search('los angeles', {limit: 2})
=> #<Yelp::Response::Search:0x007fff32edc2c0 @region=#<Yelp::Response::Model::Region:0x007fff35ddf6d0 @span=#<Yelp::Response::Model::RegionSpan:0x007fff35ddf450 @latitude_delta=0.04455494999999132, @longitude_delta=0.02209966000000918>, @center=#<Yelp::Response::Model::RegionCenter:0x007fff35ddf5e0 @latitude=34.08390635, @longitude=-118.3184503>>,...
  1. 那是什么格式? this article 说当我对 Yelp 进行 API 调用时,它会提供 ruby​​ 对象,但我不确定 #&lt;Yelp::Response... 是什么数据类型。我想我期待一个 ruby​​ 数组/json 格式的返回,如文章中所述: `

    搜索

    response = client.search('旧金山')

    response.businesses

    [,,...]

    response.businesses[0].name

    “金马可伊,DC”

    response.businesses[0].rating

    5.0

  2. 如果我想从返回 API 中选择特定信息,例如 display_address 或 neighborhood,我该怎么做? (这里是同一个 API 请求的结尾部分):

    ...@display_address=["6353 Yucca St", "Hollywood", "Los Angeles, CA 90028"], @geo_accuracy=8.0, @postal_code="90028", @country_code="US", @address=["6353 Yucca St"], @coordinate=#<Yelp::Response::Model::Coordinate:0x007fff35ddf7e8 @latitude=34.10413, @longitude=-118.32834>, @state_code="CA", @neighborhoods=["Hollywood"]>, @deals=nil, @gift_certificates=nil, @reviews=nil>]>

【问题讨论】:

    标签: ruby-on-rails api


    【解决方案1】:

    1。 如果您直接调用 API(例如,从 cURL),您会得到 JSON。

    不过,您使用的是 Yelp gem,因此它可以帮助您将 JSON 转换为 ruby​​ 对象。如果您对对象的构造感兴趣,可以在 GitHub 上查看 gem 是如何进行转换的。

    您应该能够像文章所述那样与该响应进行交互,即results.businesses 应该为您提供一系列找到的企业。

    1. 更具体地说,您似乎可以执行以下操作:

    results.businesses[0].display_address 获取找到的第一个商家的显示地址 results.businesses[0].neighborhoods 是与同一商家相关的所有社区的数组。

    【讨论】:

    • 谢谢!有效。我没有意识到我需要使用点符号businesses 将其“转换”为数组格式。我能够运行result.businesses[0].location.display_address 并获得地址。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2012-08-22
    • 2014-12-08
    • 1970-01-01
    相关资源
    最近更新 更多