![jq:使用其他字段的约束解析json文件](https://linux22.com/image/142886/jq%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%85%B6%E4%BB%96%E5%AD%97%E6%AE%B5%E7%9A%84%E7%BA%A6%E6%9D%9F%E8%A7%A3%E6%9E%90json%E6%96%87%E4%BB%B6.png)
这个问题的延伸:如何组合 JSON 值中的字符串,仅保留字符串的一部分?
上面链接的输出还包括"name"
offolder
类型,需要排除这些"type"
:
"date_added": "13170994909893393",
"date_modified": "13184204204228233",
"id": "2098",
"name": "ElasticSearch",
"sync_transaction_version": "1",
"type": "folder"
如何仅获取"type"
同一对象的字段 if "url"
,否则忽略:
将放入输出中的有效模式:
"type": "url",
"url": "https://url_here"
答案1
给定一个对象数组,jq
可以使用 来选择满足特定条件的对象select()
。
听起来你可能想使用
.array[] | select(.type == "url")
给定一个 JSON 文档,例如
{ "array": [ { "type": "folder", "name": "example folder" },
{ "type": "url", "name": "example url" } ] }
上面的查询将返回
{
"type": "url",
"name": "example url"
}