Azure 逻辑应用程序是否支持 JSON 架构验证中的 oneOf、anyOf
Do Azure Logic Apps support oneOf, anyOf in JSON schema validation
我试图在使用 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 进行测试,但执行失败还有。
逻辑应用程序是否支持这些扩展验证?我在这里缺少一些特定的语法吗?
如果您要验证 familyname 或 lastname 是否存在,那么您缺少 "required" 属性。
{
"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'])
我试图在使用 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 进行测试,但执行失败还有。
逻辑应用程序是否支持这些扩展验证?我在这里缺少一些特定的语法吗?
如果您要验证 familyname 或 lastname 是否存在,那么您缺少 "required" 属性。
{
"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'])