2013-08-30 3 views
-1

foursquare2 gem 응답의 필드를 추출하는 동안 문제가 있습니다. 여기에 내 코드입니다 :foursquare2 gem 결과를 추출하는 방법 (Hashie :: Mash)

require 'foursquare2' 

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

    tips = client.venue_tips('4d169843b15cb1f7f4c4ae21') 

그리고 나는 결과를 얻었다 :

#<Hashie::Mash count=8 items=[#<Hashie::Mash  canonicalUrl="https://foursquare.com/item/4f689747e4b04ab624cce6d3" createdAt=1332254535 done=#<Hashie::Mash count=1> id="4f689747e4b04ab624cce6d3" lang="pt" likes=#<Hashie::Mash count=2 groups=[#<Hashie::Mash count=2 items=[#<Hashie::Mash bio="" contact=#<Hashie::Mash> firstName="Pedro" gender="male" homeCity="Recife, Brasil" id="19761425" lastName="T." photo="https://is1.4sqi.net/userpix_thumbs/G5R14BT031K2B2AX.jpg" tips=#<Hashie::Mash count=25>>, #<Hashie::Mash bio="" contact=#<Hashie::Mash> firstName="Nat\u00E1lia" gender="female" homeCity="Recife, Brasil" id="12706383" lastName="S." 
photo="https://is0.4sqi.net/userpix_thumbs/UF0Q0OZFWNQLXRFG.jpg" tips=#<Hashie::Mash count=1>>] type="others">] summary="2 likes"> text="Nova padaria com bons produtos, destaque para as formadas de p\u00E3o \u00E0 tarde." 

나는이 값을 얻을 수 tips.firstName로 뭔가를하고 싶습니다,하지만 작동하지 않습니다. REST API를 선호해야합니까?!

미리 감사드립니다.

는 의견

내가 제공 한 제안 다음 한 해결책 후 편집 :

tips.groups[0].items.each{|i| puts i.firstName} 

그러나 그것은 작동하지 않습니다. 난 그냥 오류가 발생했습니다 : data_scraping_fq.rb : 16 : '전무 위해 [] <main>': undefined method에 : NilClass (NoMethodError)

+0

질문이 무엇인지 명확하게 설명해 주시겠습니까? 귀하의 질문에서 귀하는 팁 목록을 검색했습니다. 'tips.items [0] .firstName'는 "Pedro"를 반환해야합니다. . . –

+0

@NeilSlater 네, 문제는해야하지만 그렇지 않습니다. 그리고 이것이 사실입니다. 저는 Hashie :: Mash 내부에서 데이터를 가져올 수 없습니다. 각 필드의 값을 얻고 싶습니다. 희망이 도움이됩니다. – gfm

+0

"작동하지 않습니다"는 문제 설명이 아닙니다. [편집]하고 훨씬 더 구체적이어야합니다; 우리는 당신의 스크린을 보거나 여기에서 당신의 마음을 읽을 수 없습니다. –

답변

1

tips.firstName이 작동하지 않습니다 당신이 venues/tips 엔드 포인트를 사용할 때. Foursquare API 탐색기를 사용할 때 JSON 응답을 살펴보고 팁 제출자의 이름을 얻으려면 tips.items를보아야합니다.

+0

@octopi 감사합니다. 나는 네가 제안한 것을하려고했지만 여전히 긍정적 인 결과가 없다. 나는 "tips.groups [0] .items.each {| i | puts i.firstName}"을했지만 잘못 생각합니다. 어쨌든 고맙다, 나는 계속 노력할 것이다. – gfm

+0

@gfm tips.items.each, 나는 당신이 "그룹"을 어디서 얻고 있는지 확실하지 않다. –