Поддерживают ли приложения логики Azure проверку схемы oneOf, anyOf в JSON - PullRequest
0 голосов
/ 10 декабря 2018

Я пытался добавить проверку схемы JSON в приложении логики с помощью действия ParseJSON.Я хочу проверить существование любого объекта в сообщении (эквивалентно выбору XSD).

Например, сообщения могут иметь либо фамилию, либо фамилию.

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

Или

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

Я изменил сгенерированную схему следующим образом:

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

При выполнении приложения логики появляется ошибка ниже

Logic App JSON oneOf

Просто чтобы проверить, работает ли любое другое ключевое слово комбинации схем, попытался проверить с anyOf вместо oneOf , а также не удалось выполнить.

Logic App JSON anyOf

Поддерживает ли Logic Apps расширенную проверку?Я пропускаю какой-то определенный синтаксис здесь?

1 Ответ

0 голосов
/ 10 декабря 2018

Если вы проверяете наличие либо фамилии, либо фамилии, то вам не хватает атрибута «required».

{
    "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'])
...