【发布时间】:2020-08-14 16:54:15
【问题描述】:
我有一个深度嵌套的 JSON,它太大而无法查看;我想从某个嵌套级别中删除所有项目,最好使用jq。
说,JSON 是:
{
"paging": {
"next": "items?page=12",
"previous": "items?page=10"
},
"hits": {
"total": 10200,
"max_score": 1,
"hits": [
{
"id": 1337,
"really large struct 1": "with long and complexed nested values"
},
{
"id": 1338,
"really large struct 1": "with long and complexed nested values"
}
]
},
"took": 11,
"timed_out": false
}
在此示例中,我想省略 .hits.hits 下的所有内容,可以将其替换为省略号 (...) 或直接忽略它。一个不错的选择是在示例中仅呈现 id 值。
paging、took 和 timed_oud 等字段是示例,可能会更改,或者是一个相当长且实用的列表,因此简单地将所有应该保留的内容列入白名单不是一种选择:我想要过滤掉某个深度而不显示它;不过,过滤某些列入黑名单(黑名单)的项目(例如删除所有 .hits.hits.*)是可以的。
我已经尝试过jq '.' | cut -c1-40,它不需要水平滚动和/或换行,但不需要长垂直滚动。
【问题讨论】: