Ruby on rails ruby-如何解析这个LinkedIn';什么是杂烩?

Ruby on rails ruby-如何解析这个LinkedIn';什么是杂烩?,ruby-on-rails,ruby,parsing,hash,linkedin,Ruby On Rails,Ruby,Parsing,Hash,Linkedin,从LinkedIn API中,我得到了以下哈希值: > #<LinkedIn::Mash all=[#<LinkedIn::Mash api_standard_profile_request=#<LinkedIn::Mash headers=#<LinkedIn::Mash > all=[#<LinkedIn::Mash name="x-li-auth-token" value="name:_nNI">] > total=1> url=

从LinkedIn API中,我得到了以下哈希值:

> #<LinkedIn::Mash all=[#<LinkedIn::Mash api_standard_profile_request=#<LinkedIn::Mash headers=#<LinkedIn::Mash
> all=[#<LinkedIn::Mash name="x-li-auth-token" value="name:_nNI">]
> total=1> url="http://api.linkedin.com/v1/people/asdasfga">
> first_name="first name" headline="job position"
> id="id of user" industry="industry"
> last_name="last name" location=#<LinkedIn::Mash
> country=#<LinkedIn::Mash code="en"> name="country">
> site_standard_profile_request=#<LinkedIn::Mash
> url="http://www.linkedin.com/profile?viewProfile=&key=key_number&authToken=_nNI&authType=name&trk=api*a_12346*s_12346*">>]
> total=1>
给予

然后我得到了

undefined method `each' for nil:NilClass
试试这个:

linkedin.all.each do |profile|
  puts profile.first_name
end

我首先建议您使用
p
而不是
put
调试对象。它对正在打印的对象调用
inspect
,而不是
,这将为您提供有关该对象的更多信息

接下来,查看上的文档。您的
LinkedIn::Mash
对象是从这个类继承的,但是LinkedIn没有提供太多文档,因此您必须沿着继承链向上

由于
Hashie::Mash
是一个类似于散列的对象,因此在对其进行迭代时,应使用
每个\u对
,以获取散列中的每个键值对,而不是一次一个键或值:

linkedin.connections.each_pair do |key, value|
  p key
  p value
end
这些都不能真正回答您的问题,但希望您能从调试工作中获得更多信息。我猜你需要这样做:

linkedin.connections[0].url

但我不能肯定。

请查看更新后的帖子。我不知道如何进入
api\u标准配置文件\u请求
hash。什么类型的对象是
linkedin.connections
?这就是你在问题开始时打印的对象吗?你可以调用
.to_hash
将Mash转换为hash(如params)<代码>linkedin.to_散列
linkedin.all.each do |profile|
  puts profile.first_name
end
linkedin.connections.each_pair do |key, value|
  p key
  p value
end
linkedin.connections[0].url