我正在使用的Savon gem将返回单个对象或数组,在 SOAP 响应返回之前,我无法知道它会是哪个。
为方便起见,我希望将nil
响应转换为[]
,将单个响应转换为 ,[obj]
并将数组保留为数组。这可以通过 轻松完成Kernel#Array
,因此:
> Array nil
=> []
> Array 1
=> [1]
> Array [1,2,3]
=> [1, 2, 3]
但是,因为Kernel#Array
调用to_a
,它会失败Hash
覆盖to_a
:
> Array({a: 1})
=> [[:a, 1]]
> Array([{a: 1}, {b: 2}])
=> [{:a=>1}, {:b=>2}]
在上面的第 2 行我想看看[{:a=>1}]
。