Azure Logic应用程序是否在JSON模式验证中支持oneOf,anyOf?

时间:2018-12-10 07:15:51

标签: azure azure-logic-apps

我正在尝试使用ParseJSON操作在Logic App中添加JSON模式验证。 我想验证消息中是否存在任何对象(等同于XSD选择)。

例如,邮件可以使用姓氏或姓氏。

{
"name": "Alan",
"familyname": "Turing"
}

{
"name": "Alan",
"lastname": "Turing"
}

我将生成的架构修改为

{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "oneOf": [
            {
                "lastname": {
                    "type": "string"
                }
            },
            {
                "familyname": {
                    "type": "string"
                }
            }
        ]
    }
}

Logic App执行抛出错误以下

Logic App JSON oneOf

仅测试是否有任何其他模式组合关键字有效,尝试使用 anyOf 代替 oneOf 进行测试,并且它也无法执行。

Logic App JSON anyOf

Logic Apps是否支持这些扩展验证?我在这里缺少某些特定的语法吗?

1 个答案:

答案 0 :(得分:1)

如果您要验证姓氏或姓氏存在,那么您将缺少“必需”属性。

{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        }
    },
    "oneOf": [
        {
            "familyname": {
                "type": "string"
            },
            "required": [ "familyname" ]
        },
        {
            "lastname": {
                "type": "string"
            },
            "required": [ "lastname" ]
        }
    ]
}

这将验证JSON。如果要在以后的步骤中获取值,可以使用合并功能。

@coalesce(actionBody('Parse_JSON')?['familyname'], actionBody('Parse_JSON')?['lastname'])
相关问题