如何在http触发器内访问json

时间:2019-06-04 18:27:40

标签: azure azure-logic-apps

如何从下面的有效负载中获取subject属性?

我有一个http触发的逻辑应用程序:

enter image description here

我希望能够获取subject属性的内容。

如上图所示,该架构如下所示:

{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "topic": {
                "type": "string"
            },
            "subject": {
                "type": "string"
            },
            "eventType": {
                "type": "string"
            },
            "eventTime": {
                "type": "string"
            },
            "id": {
                "type": "string"
            },
            "data": {
                "type": "object",
                "properties": {
                    "api": {
                        "type": "string"
                    },
                    "clientRequestId": {
                        "type": "string"
                    },
                    "requestId": {
                        "type": "string"
                    },
                    "eTag": {
                        "type": "string"
                    },
                    "contentType": {
                        "type": "string"
                    },
                    "contentLength": {
                        "type": "integer"
                    },
                    "blobType": {
                        "type": "string"
                    },
                    "url": {
                        "type": "string"
                    },
                    "sequencer": {
                        "type": "string"
                    },
                    "storageDiagnostics": {
                        "type": "object",
                        "properties": {
                            "batchId": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "dataVersion": {
                "type": "string"
            },
            "metadataVersion": {
                "type": "string"
            }
        },
        "required": [
            "topic",
            "subject",
            "eventType",
            "eventTime",
            "id",
            "data",
            "dataVersion",
            "metadataVersion"
        ]
    }
}

如何从此有效负载中获取subject属性?

2 个答案:

答案 0 :(得分:1)

在azure门户中转到逻辑应用程序设计器,然后可以在流程中专门将json分配给变量

Grabbing the json information

Here是有关如何执行此操作的链接

答案 1 :(得分:1)

使用请求触发器,如果​​要获取属性,则需要将请求正文传递到json中,因为triggerBody()的值是String类型,它不支持选择属性。设置解析json动作,如下图所示。

enter image description here

然后您的json将数据设置为数组类型,这是您将遇到的另一个问题。因此,当您选择属性时,您需要像下面这样用Expression添加索引:body('Parse_JSON')[0]['subject']

enter image description here

我用简短的json测试了主题和主题这两个属性。

enter image description here