如何使用jq将JSON对象流转换为数组

时间:2015-04-02 03:37:51

标签: json jq

我想使用jq将json对象流放入json数组中,例如,来自

{"a":1}
{"b":2}

[{"a":1},
{"b":2}]

但这不起作用

echo '
{"a":1}
{"b":2}
'|jq '[.]'

因为我得到了

[
  {
    "a": 1
  }
]
[
  {
    "b": 2
  }
]

1 个答案:

答案 0 :(得分:23)

使用-s选项填充它。

$ jq -s '.' <<< '{ "a": 1 } { "b": 2 }'
[
  {
    "a": 1
  },
  {
    "b": 2
  }
]

作为另一种选择,使用inputs读取值是一种更灵活的选择。您通常希望将此选项与-n选项结合使用,以防止第一个值过早消耗。

$ jq -n '[inputs]' <<< '{ "a": 1 } { "b": 2 }'