我有以下内容:
@array.inspect
["x1", "x2", "adad"]
我希望能够将其格式化为:
client.send_message(s, m, {:id => "x1", :id => "x2", :id => "adad" })
client.send_message(s, m, ???????)
如何在???????中显示@array输出?空间作为ids?
由于
答案 0 :(得分:11)
{:id => "x1", :id => "x2", :id => "adad" }
不是有效哈希
应该看起来像:
{
"ids": ["x1", "x2", "x3"]
}
更新
@a = ["x1", "x2", "adad"]
@b = @a.map { |e| {:id => e} }
然后,您可以执行b.to_json
,假设您已经完成了require "json"
答案 1 :(得分:2)
通常你可以这样做:
Hash[@array.collect{|i| [:id, i]}]
但这会导致{:id => “adad”}因为第一个元素将冲击所有其余元素:ruby中的哈希值具有唯一键。所以我认为没有超级棒的方法可以随意做到这一点。