【发布时间】:2016-03-29 16:54:34
【问题描述】:
我有一个如下所示的 JSON 文件(粗略架构):
[{
"custom_variables": [
{
"name": "xxx",
"value": "xxx"
},
{
"name": "xxx",
"value": "xxx"
},
{
"name": "profile_id",
"value": "123"
}
],
// many fields
"xxx": "xxx",
"xxx": "xxx",
"xxx": "xxx"
}]
我正在使用 jq 从顶级对象中提取所有字段。 custom_variables 字段包含具有名称和值的对象数组。
我想从 custom_variables 中提取一个特定的对象,给定它的名字。
所以我正在做的是:
jq 'map(
{
xxx: .xxx,
xxx: .xxx,
xxx: .xxx,
xxx: .custom_variables | .[] | select(.name == "variable_name")
}
)'
它几乎可以工作;它会在它存在时获得我想要的变量,但是当它不存在时(或者如果 custom_variables 本身不存在),它将删除整个顶级对象。所以最后我得到的对象比我放入脚本中的要少。
如果我没有找到该字段但仍保留其余数据,我该如何返回 null?
【问题讨论】: