2015-02-09 130 views
-5

我的对象 “和” 当前数组是:如何将对象数组转换为哈希数组?

[{"sum":{"key1":0,"key2":"2014","key3":0,"key4":"8","key5":0,"key6":"0","key7":0}}, 
{"sum":{"key1":0,"key2":"2014","key3":0,"key4":"12","key5":0,"key6":"1","key7":0}}] 

的目标是:

[{"key1":0,"key2":"2014","key3":0,"key4":"8","key5":0,"key6":"0","key7":0, 
{"key1":0,"key2":"2014","key3":0,"key4":"12","key5":0,"key6":"1","key7":0}] 
+0

这是不是对象的数组,在所有 – 2015-02-09 04:37:32

+0

没有有效的Ruby数组我尝试将其转换成JSON('渲染:文本=> a.to_json ')为了解我的数据 – 2015-02-09 04:41:37

+0

@ RustamA.Gasanov这实际上是Ruby 2.2中的有效语法。 – 2015-02-09 04:54:35

回答

1

使用Array#flat_map

array.flat_map(&:values) 
# is same as : 
array.flat_map { |hash| hash.values } 
# or simply if you have 
array.map { |hash| hash["sum"] } 
+0

我将对象数组呈现给json以便于理解。所以,“.values”是行不通的,因为这里的值是对象的属性(hash.key1会起作用) – 2015-02-09 04:30:40

+0

@VuLe你的哈希在数组内..是一个在Ruby 2.2.0中有效的语法......它会像2.2.0中的魅力一样工作。 – 2015-02-09 04:35:13

+0

flat_map不工作(未定义的方法)。我试着和你的最后一样('array.map {| hash | hash [“sum”]}'),所有元素都是null – 2015-02-09 06:27:15

相关问题