jq:使用其他字段的约束解析json文件

jq:使用其他字段的约束解析json文件

这个问题的延伸:如何组合 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"
}

相关内容