首页 > 解决方案 > 如何为 Azure 逻辑应用的触发器 JSON 架构中的字段设置默认值?

问题描述

我正在使用触发器设置 Azure 逻辑应用工作流,但目前无法在 JSON 架构中为此类触发器的字段定义默认值。

我已启用 JSON 模式验证和必填字段,如下所述:https ://www.danrigby.com/2018/08/27/enable-schema-validation-and-required-fields-in-logicapps/

我的 JSON Schema 目前如下所示:

{
    "anyOf": [
        {
            "required": [
                "delay"
            ]
        },
        {
            "required": [
                "startTime"
            ]
        }
    ],
    "properties": {
        "callbackUrl": {
            "type": "string"
        },
        "delay": {
            "default": 0,
            "minimum": 0,
            "type": "integer"
        },
        "startTime": {
            "type": "string"
        }
    },
    "required": [
        "callbackUrl"
    ],
    "type": "object"
}

我也尝试过替换defaultdefaultValue没有运气。

我希望delay在不存在时填充为 0,而是将其解释为null在 Azure 逻辑应用工作流中,从而导致无法遵循布尔条件,例如delay is greater than 0因为它们不希望对空值进行评估。

标签: jsonazureazure-logic-apps

解决方案


我相信 JSON Schema 在这里仅用于验证,因为它在许多情况下都是如此。官方文档default中提到的许多实现都忽略了该属性。

相反,您可以在需要默认值的地方使用此表达式null

if (equals(triggerBody()?['delay'], null), triggerBody()?['delay'], 0)

推荐阅读