我正在从API解析JSON。foo
有时候,我有一个元素是一个哈希,而另一个是哈希数组。
foo: { ... }
foo: [
{ ... },
{ ... }
]
我只想使用Array(foo)
总是获得至少包含一个元素的数组,但是它将哈希转换为[[..., ...], [..., ...]]
。除了使用之外,还有一种优雅的方式来处理此问题foo.is_a?(Hash/Array)
吗?
添加到@yez答案,如果您不使用activesupport
,则可以扩展Array
为具有以下wrap
功能:
def Array.wrap(object)
if object.nil?
[]
elsif object.respond_to?(:to_ary)
object.to_ary || [object]
else
[object]
end
end
从http://apidock.com/rails/Array/wrap/class复制
实现它的另一种粗略方法是:
def Array.wrap(object)
return [] if object.nil?
[object].flatten(1)
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句