我需要使用 jq 将 json 文档中的字段值设置为三个值之一,具体取决于哪个值存在。理论上,这看起来像:set X to (if A exists, else if B exists, else if C exists, else "")
。
我的 json 文档示例如下所示:
{
"name": "0230",
"publish_date": "2007-08-18",
"abc_severity": "",
"def_severity": "medium",
"ghi_severity": "negligible"
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个字段Severity
并将其值设置为非abc_severity
空或空的值。如果它为 null 或空,我想将其设置为def_severity
,如果它为 null 或空,我想将其设置为ghi_severity
。如果所有三个都为 null 或为空,则可以使用空值创建""
。所以这种情况下的输出将是:
{
"name": "0230",
"publish_date": "2007-08-18",
"abc_severity": "",
"def_severity": "medium",
"ghi_severity": "negligible",
"Severity": "medium"
}
Run Code Online (Sandbox Code Playgroud)
以下是我似乎能够得到的最接近的:
'. | if .abc_severity? then .Severity=.abc_severity else if .def_severity? then .Severity=.def_severity …