作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想遍历 Hashie::Mash 的键和值。
这是我的尝试:
html = "Just look at these subscriptions!"
client.subscriptions.each do |sub|
html << sub.each do |key, value|
html << key.to_s
html << " = "
html << value.to_s
end
end
它返回以下错误:
“无法将 Hashie::Mash 转换为字符串(Hashie::Mash#to_str 给出 NilClass)”
我试过 sub.keys.to_s
和 sub.values.to_s
产生了 ["key1", "key2", "key3"]
, ["value1", "value2", "value3"]
,但我正在寻找显示匹配对的内容,因为它们在散列中,或者像 ["键1:值1”,“键2:值2”,“键3:值3”]。有没有办法在不将单独的数组压缩在一起的情况下做到这一点?
谢谢!
最佳答案
sub.to_hash
显示一些完全像散列的东西。 :) 然后你可以用散列做任何你能做的事;喜欢
html << sub.to_hash.to_s
或者您可以用更像 Rubyish 的方式做您正在做的事情:
html << sub.map { |key, value| "#{key} = #{value}" }.join(", ")
但是,你真正的问题是在html << sub.each ...
: each
返回正在迭代的集合,所以你正在做 html << sub
;这失败了。如果您刚刚删除 html <<
,您的代码将起作用从那一行开始,因为连接是在 each
内部处理的循环。
关于ruby - 如何遍历 Hashie::Mash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30608819/
我是一名优秀的程序员,十分优秀!