在bash中使用jq将json值提取为数组

时间:2019-12-26 16:40:41

标签: json bash jq

如何使用jq将json的值提取为JSON数组?

例如以下json:

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

我想将值提取为JSON数组:

[ 1, 2 ]

如何使用jq来做到这一点? 我找到了一种仅在docs中提取密钥的方法:

echo $json | jq keys返回:

[
"a",
"b"
]

2 个答案:

答案 0 :(得分:5)

echo $json | jq '[.[]]'

输出:

[
  1,
  2
]

答案 1 :(得分:3)

一种解决方案是使用to_entries,然后使用map仅提取值:

$ echo '{
   "a" : 1,
   "b" : 2
}' | jq 'to_entries|map(.value)'
[
  1,
  2
]

另一种更简单,更快捷的解决方案是仅使用map(.)

$ echo '{
   "a" : 1,
   "b" : 2
}' | jq 'map(.)'
[
  1,
  2
]