在ruby中迭代数组的散列

在ruby中迭代数组的散列,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我有一个散列,其中包含一个数组: { "id": "0001001", "name": "Bob Fisher", "work": [ { "employer": { "id": "6883542487", "name": "Marvel" }, "location": { "id": "108081209214649", "name": "Las Vegas, Nevada"

我有一个散列,其中包含一个数组:

{
  "id": "0001001",
  "name": "Bob Fisher",
  "work": [
    {
      "employer": {
        "id": "6883542487",
        "name": "Marvel"
      },
      "location": {
        "id": "108081209214649",
        "name": "Las Vegas, Nevada"
      },
      "position": {
        "id": "148835345140954",
        "name": "Cirkusdirektör"
      },
      "description": "API testing",
      "start_date": "2012-01",
      "end_date": "2013-01"
    },
    {
      "employer": {
        "id": "11648563484",
        "name": "DC Comics"
      },
      "location": {
        "id": "108424279189115",
        "name": "New York, New York"
      },
      "position": {
        "id": "178387758878908",
        "name": "Dykare"
      },
      "description": "Api testing",
      "start_date": "2010-02",
      "end_date": "2011-01"
    }
  ]
}
如何在ruby中迭代每个雇主的价值观?所以我得到如下输出:

Employer name: Marvel
Location name: Las Vegas, Nevada
Position: Cirkusdirektör
Description: Api testing
Start-date: 2012-01
End-date: 2013-01

Employer name: DC Comics
Location name: New York, New 
Position: Cirkusdirektör
Description: Api testing
Start-date: 2012-01
End-date: 2011-01
就这么简单:

输出:

破译密码:

输出:


循环一次而不是两次。所以我只得到第一部分,而不是第二部分。你的数据是JSON吗?你需要解析它吗?它的数据来自facebook graph,而不是JSONC。请解释循环部分,会发生什么there@SHUMAcupcake现在告诉我哪一部分让你困惑,我只是打破了循环。这不是我的意思,但现在已经无关紧要了。我检查了ruby api。谢谢这不是有点冒险吗,因为工作不可能总是最后一个元素?在Ruby中的所有
Hash
es都没有排序之后。@itehnologic
因此
不是完整的解决方案,它给你提示,它通过提供想法帮助你完成上面的一步。现在我试着按照OP的帖子做同样的事情。现在,如果情况如你所说的那样发生,OP应该管理好它,如果他理解这个代码的话。因为这不是什么大挑战。在这里,我们从不假设,被问到的问题,我们只回答。
data['work'].each do |entry|
  puts entry['employer']['name']
  puts entry['location']['name']
  puts entry['position']['name']
  puts entry['description']
  puts entry['start_date']
  puts entry['end_date']
end
h = {
  "id"=> "0001001",
  "name"=> "Bob Fisher",
  "work"=> [
    {
      "employer"=> {
        "id"=> "6883542487",
        "name"=> "Marvel"
      },
      "location"=> {
        "id"=> "108081209214649",
        "name"=> "Las Vegas, Nevada"
      },
      "position"=> {
        "id"=> "148835345140954",
        "name"=> "Cirkusdirektör"
      },
      "description"=> "API testing",
      "start_date"=> "2012-01",
      "end_date"=> "2013-01"
    },
    {
      "employer"=> {
        "id"=> "11648563484",
        "name"=> "DC Comics"
      },
      "location"=> {
        "id"=> "108424279189115",
        "name"=> "New York, New York"
      },
      "position"=> {
        "id"=> "178387758878908",
        "name"=> "Dykare"
      },
      "description"=> "Api testing",
      "start_date"=> "2010-02",
      "end_date"=> "2011-01"
    }
  ]
}

h.values.last.each do |x| 

  puts "---------------------------------------"
  puts "Employer name:- #{x['employer']['name']}"
  puts "Location name:- #{x['location']['name']}"
  puts "Position:- #{x['position']['name']}"
  puts "Description:- #{x['description']}"
  puts "Start-date:- #{x['start_date']}"
  puts "End-date: #{x['end_date']}"
  puts "---------------------------------------"

end
---------------------------------------
Employer name:- Marvel
Location name:- Las Vegas, Nevada
Position:- Cirkusdirektör
Description:- API testing
Start-date:- 2012-01
End-date: 2013-01
---------------------------------------
---------------------------------------
Employer name:- DC Comics
Location name:- New York, New York
Position:- Dykare
Description:- Api testing
Start-date:- 2010-02
End-date: 2011-01
---------------------------------------
h.values.last.each do |x|
 p x
end
{"employer"=>{"id"=>"6883542487", "name"=>"Marvel"}, "location"=>{"id"=>"108081209214649", "name"=>"Las Vegas, Nevada"}, "position"=>{"id"=>"148835345140954", "name"=>"Cirkusdirekt\u00F6r"}, "description"=>"API testing", "start_date"=>"2012-01", "end_date"=>"2013-01"}

{"employer"=>{"id"=>"11648563484", "name"=>"DC Comics"}, "location"=>{"id"=>"108424279189115", "name"=>"New York, New York"}, "position"=>{"id"=>"178387758878908", "name"=>"Dykare"}, "description"=>"Api testing", "start_date"=>"2010-02", "end_date"=>"2011-01"}