2015-02-09 132 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

相關問題