首页 > 解决方案 > Azure 逻辑应用:可空 JSON 值不可用作动态内容

问题描述

我正在构建一个逻辑应用程序,该应用程序从 REST API 中提取一些 JSON 数据,使用 Parse JSON 块对其进行解析,并将其推送到 Azure Log Analytics。我遇到的主要问题是一个重要的 JSON 字段可以是对象也可以是 null。根据这篇文章,我将 JSON 模式的相关部分更改为类似这样

"entity": {"type": ["object", "null"] }

虽然这可行,但我现在不再entity在逻辑应用程序中作为动态内容进行访问。我可以访问逻辑中下游的 Parse JSON 块解析的所有其他字段(没有可为空的字段)。如果我删除“null”选项并将类型设置为object,我可以entity再次访问动态内容。有谁知道为什么会发生这种情况和/或如何访问entity下游的字段?

标签: azure-logic-apps

解决方案


通过测试,如果我们使用"entity": {"type": ["object", "null"] },我们确实不能直接选择entityin dynamic content

但是我们可以使用下面的表达式来获得entity

body('Parse_JSON')?['entity']

在此处输入图像描述

测试结果似乎没有问题:

在此处输入图像描述

为了更好地理解,让我再举几个例子:

1.如果你的json是这样的:</p>

{
    "entity": {
        "testKey": "testValue"
    }
}

你的表情是这样的:

body('Parse_JSON')?['entity'] 

2.如果你的json是这样的:</p>

{
    "test": {
        "entity": {
            "testKey": "testValue"
        }
    }
}

你的表达应该是这样的:

body('Parse_JSON')?['test']?['entity'] 

推荐阅读