我在Windows 64位计算机上使用JQ 1.4。
以下是内容输入文件(JSON.txt
)
{
"name": "Google",
"location":
{
"street": "1600 Amphitheatre Parkway",
"city": "Mountain View",
"state": "California",
"country": "US"
},
"employees":
[
{
"name": "Michael",
"division": "Engineering"
},
{
"name": "Laura",
"division": "HR"
},
{
"name": "Elise",
"division": "Marketing"
}
]
}
在输出中,我会看到两个结果"Google"
和"Laura"
我可以用个人过滤器来获取它们。
1) jq ."name" JSON.txt
"Google"
2) jq ."employees|map(select(.division==\"HR\"))"[0].name JSON.txt
"Laura"
当我使用逗号,
合并这两个过滤器时,收到以下错误:
3) jq ."name",."employees|map(select(.division==\"HR\"))"[0].name JSON.txt
jq: error: Cannot iterate over string
null
"Laura"
有人可以帮助我得到以下结果:
"Google"
"Laura"
答案 0 :(得分:2)
在表达式的第二部分周围使用括号,并使用简写键过滤器语法,如:
jq ".name, (.employees|map(select(.division==\"HR\"))[0].name)" JSON.txt