我有一个 JSON 结构,我只想打印简单类型的条目,例如不是数组或对象。
输入示例:
{
"person": {
"address": {
"city": "NY",
"street": "Wall Street"
},
"god": true,
"nicks": [
"Lar",
"L",
"Yo"
],
"name": "Larry",
"id": 1
}
}
Run Code Online (Sandbox Code Playgroud)
预期输出:
"god": true,
"name": "Larry",
"id": 1
Run Code Online (Sandbox Code Playgroud)
我尝试了许多不同的变体,但都不起作用:
jq '.person | with_entries(.) | select(map(type) != "array" and map(type) != "object")'
请注意,我使用的是 jq 1.3 版本。
预先感谢您的任何帮助。
你实际上并没有对with_entries那里的呼叫做任何事情。但你可能应该在那里进行过滤。过滤值的类型既不是数组也不是对象的条目。
.person | with_entries(select(.value | type | . != "array" and . != "object"))
Run Code Online (Sandbox Code Playgroud)
如果您使用的是更新版本的 jq,您可以使用scalars内置函数进行过滤,它可以有效地执行相同的操作。
.person | with_entries(select(.value | scalars))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |