San*_*ini 11 json azure azure-logic-apps
我创建了一个逻辑应用程序,其中包含一些触发器,一个'http'连接器,然后是一个'If'条件活动.'http'连接器返回'json'结果说jsonObj.
我能够检查条件,@equal(body('HTTP')['jsonObj'].someProperty,'someValue')但无法null检查该someProperty值.
以下是我试过的一些不起作用的方法.
@equal(body('HTTP')['jsonObj'].someProperty, null) --Unable to save
@equal(body('HTTP')['jsonObj']?.someProperty,'null') --Comparing with string value 'null'
Run Code Online (Sandbox Code Playgroud)
Chr*_*777 10
你现在可以这样做:
@equals(triggerBody()['jsonObj']?['someProperty'], null)
Run Code Online (Sandbox Code Playgroud)
它是有效的并且可以保存,但如果您尝试切换到基本模式,则会出现错误.仍然可以保存.
我没有找到一个真正的办法直接对测试null或undefined但选择一个足够的"随机"的字符串作为后备的时候采取以下解决办法应该工作coalesce
...
"propExists": "@equals(coalesce(triggerBody()?.prop, 'Fallback42'), 'Fallback42')"
...
Run Code Online (Sandbox Code Playgroud)
例如,以下逻辑应用程序将回显该属性prop以及它是否实际指定
{
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"Response": {
"inputs": {
"body": {
"propNull": "@equals(coalesce(triggerBody()?.prop, 'undefined'), 'undefined')",
"prop": "@triggerBody()?.prop"
},
"statusCode": 200
},
"runAfter": {},
"type": "Response"
}
},
"contentVersion": "1.0.0.0",
"outputs": {},
"parameters": {},
"triggers": {
"request": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request"
}
}
}
Run Code Online (Sandbox Code Playgroud)
这样一个请求
{
"prop": "test"
}
Run Code Online (Sandbox Code Playgroud)
结果是
{
"prop": "test",
"propNull": false
}
Run Code Online (Sandbox Code Playgroud)
而请求
{
"propOther": "test"
}
Run Code Online (Sandbox Code Playgroud)
结果是
{
"prop": null,
"propNull": true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13740 次 |
| 最近记录: |