Ruby 如何在散列中移动数组元素?
我正在尝试将数组放入哈希:Ruby 如何在散列中移动数组元素?,ruby,Ruby,我正在尝试将数组放入哈希: @friends = {} @friend = ['network' => 'facebook', 'picture' => picture, 'name' => name, 'id' => id] 如何将@friend移动到@friends中以获得以下结果: friends: { [ 'network': 'facebook', 'picture': 'http://fb.com/myimage.jpg', 'n
@friends = {}
@friend = ['network' => 'facebook', 'picture' => picture, 'name' => name, 'id' => id]
如何将@friend
移动到@friends
中以获得以下结果:
friends: {
[
'network': 'facebook',
'picture': 'http://fb.com/myimage.jpg',
'name': 'MyName',
'id': '46846546'
]
}
数组中的数组
我可以做。数组中的散列
,我也可以这样做。但是散列中的数组
——我找不到怎么做
这可能是不可能的。我在文档中搜索散列和数组,但没有任何相关内容
对于与上次评论相关的@dave newton:
对于@Borodin,与他的回答相关:
您不能“将数组放入散列”以获得类似{[]}
的内容。哈希是从键值对构建的。数组可以在散列中担任键或值角色
例如,这里的数组是值,符号:friends
是键:
{:friends => ['Pete', 'Robert', 'Katrin']}
@friend
变量(正如您所定义的)会导致一个数组包含一个元素,即散列
@friend = ['network' => 'facebook', 'picture' => picture, 'name' => 'name', 'id' => 42]
#=> [{"network"=>"facebook", "picture"=>"picture", "name"=>"name", "id"=>42}]
我猜你希望@friend
是一个散列,@friends
是一个包含许多friend
-散列的数组。那个规范是胡说八道。它有带键的数组和不带键的散列。应该交换{}
和[]
对,并且键/值对之间应该有逗号
我想它的设计意图是这样的
{
"connections" : [
{
"network" : "facebook",
"picture" : "http://facebook.com/picture.jpg",
"name" : "User Name",
"id" : "12345679"
},
{
"network" : "linkedin",
"picture" : "http://linkedin.com/picture.jpg",
"name" : "Another User",
"id" : "959d919sd92"
}
]
}
但是我不能确定,你需要回去问这个问题。很难理解你想要什么。您混淆了符号和字符串散列键。结果散列可以有符号键,如网络:'facebook'
或:网络=>'facebook'
,也可以有字符串键,如'network'=>'facebook'
。如果您在irb
中编写了所需的数据结构并将其展示给我们,这会有所帮助。这就是它应该是什么吗?你期望的JSON不是JSON。你想干什么?散列中的每个元素都需要一个键。我强烈怀疑您误解了前端开发人员的需要;没有“无键散列中的数组”这样的东西。如果你想要一个散列数组,比如friends:[…]
,那很简单;数组中包含好友列表的JSON对象似乎是一个合理且可能的要求。@rmagnum2002:该规范毫无意义。它有带键的数组和不带键的散列。应该交换{}
和[]
对,并且键/值对之间应该有逗号。“不能”将数组放入哈希“-这就是我一直在寻找的,因为我花了几个小时寻找解决方案,我只是认为这是不可能的,我只是需要其他人来确认。我还认为一系列的散列将是一种方式,但是,由于前端开发人员的要求是对数组进行散列,我正在寻找一种方法来实现这一点,多亏了您,这是不可能的想法得到了确认,我们将不得不使用散列数组。@rmagnum2002:如果您想要的是不可能的,我会感到惊讶。你所需要做的就是描述它。也许明天再试一次?@Borodin我已经用分配给我的任务的一部分更新了这个问题,在任务中,前端开发者要求连接数组位于散列中,看看它,告诉我我错了。@rmagnum2002:那个规范是胡说八道。它有带键的数组和不带键的散列。应该交换{}
和[]
对,并且键/值对之间应该有逗号。+1是的,他们确认这是一个输入错误,因此响应应该是一个哈希数组,就像您在这里看到的一样。由于我们之间有8个小时的时间差,这一确认来得晚了很多,所以我决定继续询问,看看这种回复是否可行。。我搜索了几个小时,但找不到解决方案,所以这个问题只是确认不可能按照任务中的要求得到响应。谢谢。更新了我与他们关于此任务的聊天中的问题,我这里的问题可能会获得更多的反对票,但也可能有助于其他人了解他们正在处理的任务中可能存在拼写错误,并浪费大量时间。