我有一个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 | with_entries(.) | select(map(type) != "array" and map(type) != "object")'
请注意,我是在jq版本1.3。
提前感谢您的帮助。
发布于 2019-08-07 19:36:35
您实际上并没有对with_entries电话做任何事情。但你应该在那里过滤。筛选值类型既不是数组也不是对象的条目。
.person | with_entries(select(.value | type | . != "array" and . != "object"))如果您使用的是最新版本的jq,则可以使用scalars内置程序进行筛选,从而有效地完成相同的任务。
.person | with_entries(select(.value | scalars))https://stackoverflow.com/questions/57400852
复制相似问题