Logstash将多个json数组合并为一个

时间:2015-12-18 09:38:55

标签: arrays ruby json logstash

我从Logstash获得以下输出。

"product" => [
        [ 0] "1234",
        [ 1] "3345",
]
 "quantity" => [
        [ 0] "12",
        [ 1] "12",
]

这是从XML解析的输出。我可以将这两个数组合并为一个数组吗?这样的事情:(不确定以下是否是正确的格式)

"ProductDetails"  => [
     [0] => [
       "product" : "1234"
        "quantity" : "12"
]
]

我想像这样组合,以便我可以更容易地检索。我认为这可以使用ruby来完成..但我对此的经验很少。这可能吗?

1 个答案:

答案 0 :(得分:1)

▶ hash = { product: [1, 2], quantity: [:a, :b] }
▶ hash.values.reduce(&:zip).map { |a| hash.keys.zip a }.map &:to_h
#⇒  [
#  [0] {
#    :product => 1,
#    :quantity => :a
#  },
#  [1] {
#    :product => 2,
#    :quantity => :b
#  }
# ]