我有一个 JSON 结构,我只想打印简单类型的条目,例如不是数组或对象。
示例输入:
{
"person": {
"address": {
"city": "NY",
"street": "Wall Street"
},
"god": true,
"nicks": [
"Lar",
"L",
"Yo"
],
"name": "Larry",
"id": 1
}
}
预期输出:
"god": true,
"name": "Larry",
"id": 1
我尝试了很多不同的变体,但都没有用:
jq '.person |与条目(.) |选择( map (类型)!=“数组”和 map (类型)!=“对象”)'
请注意,我使用的是 jq 1.3 版。
在此先感谢您的帮助。
最佳答案
您实际上并没有对那里的 with_entries
调用做任何事情。但你可能应该在那里过滤。过滤值类型既不是数组也不是对象的条目。
.person | with_entries(select(.value | type | . != "array" and . != "object"))
如果您使用的是较新版本的 jq,则可以使用 scalars
内置函数进行过滤,它可以有效地执行相同的操作。
.person | with_entries(select(.value | scalars))
关于json - 如何仅显示不是 jq 1.3 版数组或对象的顶级 JSON 条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57400852/