jq:错误:无法添加数字和字符串

Chr*_*ris 12 type-conversion jq

我想从 jq 输出下面打印成员和 id 的值:

$ cat test_|jq -r '.[] | select(.name=="AAA") | .'
{
  "name": "AAA",
  "members": 10,
  "profiles": 0,
  "templates": 0,
  "ldapGroups": 0,
  "ldapMembers": 0,
  "id": "20"
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,它仅适用于其中之一:

$ cat test_|jq -r '.[] | select(.name=="AAA") | .members'
10
Run Code Online (Sandbox Code Playgroud)

用 +" "+ 我得到错误:

$ cat test_|jq -r '.[] | select(.name=="AAA") | .members+" "+.id'
jq: error: number and string cannot be added
Run Code Online (Sandbox Code Playgroud)

hek*_*mgl 11

我建议使用字符串插值。如有必要,它会自动将输入转换为字符串:

jq -r '.[]|select(.name=="AAA")|"\(.members) \(.id)"' file.json
Run Code Online (Sandbox Code Playgroud)


Rom*_*est 9

使用tostring函数将数字转换为字符串:

jq -r '.[] | select(.name=="AAA") | (.members|tostring) +" "+ .id test'
Run Code Online (Sandbox Code Playgroud)