将JSON数组元素与jq合并

时间:2019-01-11 10:50:42

标签: json edit jq string-concatenation

我想使用jq合并数组值。 在我的输入json中,有一个嵌套数组数组times,每个数组都有(总是)两个字符串元素。我希望将这两个字符串元素连接起来,并删除嵌套数组,以便只剩下一个数组:

我的输入:

{
   "times":[
      [
         "7:29", "IN"
      ],
      [
         "10:29", "OUT"
      ]
   ],
   "foo":"bar"
}

我想要的输出是:

{
   "times":
   [
         "7:29 IN", "10:29 OUT"
   ],
   "foo":"bar"
}

这是我合并数组元素的方式,所缺少的是再次从中创建一个json数组:

jq    '.times | to_entries | .[] | (.value[0]+ " " + .value[1])'

1 个答案:

答案 0 :(得分:3)

jq '.times |= map(join(" "))' file

产量:

{
  "times": [
    "7:29 IN",
    "10:29 OUT"
  ],
  "foo": "bar"
}