【问题标题】:Do Azure Logic Apps support oneOf, anyOf in JSON schema validationAzure 逻辑应用是否支持 JSON 架构验证中的 oneOf、anyOf
【发布时间】:2018-12-10 07:15:50
【问题描述】:

我试图使用 ParseJSON 操作在逻辑应用中添加 JSON 架构验证。 我想验证消息中是否存在任何一个对象(相当于 XSD 选择)。

例如,消息可能有姓氏或姓氏。

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

或者

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

我将生成的架构修改为,

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

逻辑应用执行抛出以下错误

只是为了测试任何其他架构组合关键字是否有效,尝试使用 anyOf 代替 oneOf 进行测试,但它也执行失败。

逻辑应用是否支持这些扩展验证?我在这里遗漏了一些特定的语法吗?

【问题讨论】:

    标签: azure azure-logic-apps


    【解决方案1】:

    如果您正在验证是否存在姓氏或姓氏,则缺少“必需”属性。

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

    这将验证 JSON。如果您想在后面的步骤中获取这些值,您可以使用 coalesce 函数。

    @coalesce(actionBody('Parse_JSON')?['familyname'], actionBody('Parse_JSON')?['lastname'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 2021-12-05
      • 1970-01-01
      • 2020-02-03
      • 2019-12-10
      • 1970-01-01
      相关资源
      最近更新 更多