0

FoursquareAPIを使用して小さなアプリを作成しようとしています。

require 'rubygems'
require 'rest-client'
require 'json'
require 'foursquare2'
require 'awesome_print'

client = Foursquare2::Client.new(:client_id => 'xxx', :client_secret => 'xxx')

response = client.search_venues(:ll => '36.142064,-86.816086', :query => 'nails')

これはうまく機能しますが、APIから得られる応答は、なんとなく困惑させられます。

[
    [0] "groups",
    [1] [
        [0] {
             "type" => "places",
             "name" => "Places",
            "items" => [
                [ 0] {
                            "id" => "4e24ce97fa76c80b5f5adfcc",
                          "name" => "The Nail Spa",
                       "contact" => {
                                 "phone" => "6152975895",
                        "formattedPhone" => "(615) 297-5895"
                    },
                      "location" => {
                            "address" => "2126 Abbot Martin Rd. Suite 102",
                        "crossStreet" => "at Green Hills Mall",
                                "lat" => 36.10713765714286,
                                "lng" => -86.817004,
                           "distance" => 3888,
                         "postalCode" => "37215",
                               "city" => "Nashville",
                              "state" => "TN",
                            "country" => "United States"
                    },
                    "categories" => [
                        [0] {
                                    "id" => "4bf58dd8d48988d10c951735",
                                  "name" => "Cosmetics Shop",
                            "pluralName" => "Cosmetics Shops",
                             "shortName" => "Beauty / Cosmetic",
                                  "icon" => "https://foursquare.com/img/categories/shops/beauty_cosmetic.png",
                               "parents" => [
                                [0] "Shops & Services"
                            ],
                               "primary" => true
                        }
                    ],
                      "verified" => false,
                         "stats" => {
                        "checkinsCount" => 103,
                           "usersCount" => 90,
                             "tipCount" => 5
                    },
                      "specials" => []
                },

上記は応答の最初の部分であり、多くのデータが返されます。

必要なパーを引き出すためのRubyの最良の方法は何ですか。たとえば、各結果の名前を返したい場合はどうすればよいですか?

応答のクラスは、私が今まで見たことがないHashie :: Mashですか?

4

1 に答える 1

0

Hashieは、Hashesで遊ぶための砂糖を提供します(https://github.com/intridea/hashieを参照)。

各結果の名前を取得するには、次のような方法でうまくいくはずです。

response.groups[0].items.each{|i| puts i.name}
于 2012-05-21T20:04:45.550 に答える