使用 jq 在 JSON 数组中创建逗号分隔的列表字段

den*_*sha 4 json jq

我正在尝试使用jq将 JSON 数组内的值连接到单行逗号分隔列表中。(没有尾随逗号)

{
  "hardware": [
    "abc",
    "def",
    "ghi"
  ]
}
Run Code Online (Sandbox Code Playgroud)

创建“abc、def、ghi”

我可以使用将值连接在一起

jq -jr '(.hardware[])' input.json

abcdefghi
Run Code Online (Sandbox Code Playgroud)

我尝试插入逗号和空格但无法工作

jq -jr '(.hardware[]|join(", ")' 

jq: error: syntax error, unexpected $end (Unix shell quoting issues?) at <top-level>, line 1:

(.hardware[]|join(", ")
Run Code Online (Sandbox Code Playgroud)

有人能指出我要使用的正确语法吗?

谢谢

电车

Mic*_*mer 9

您正在寻找

jq -r '.hardware | join(", ")'
Run Code Online (Sandbox Code Playgroud)

您发布的版本中的语法错误是因为开头(没有匹配的),但在任何情况下join都需要一次给出所有值,因此.hardware优于.hardware[](一次传递一个值)。