一尘不染

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

json

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

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

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

但这行不通

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

自从我得到

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

阅读 590

收藏
2020-07-27

共1个答案

一尘不染

用该-s选项将其混为一谈。

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

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

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