как получить доступ к JSON внутри HTTP триггера - PullRequest
0 голосов
/ 04 июня 2019

Как получить свойство 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 ]

1 голос
/ 05 июня 2019

С помощью триггера запроса, если вы хотите получить свойство, вам нужно передать тело запроса в json, поскольку значение triggerBody() имеет строковый тип, оно не поддерживает выбор свойства. Установите действие parse json, как показано ниже:

enter image description here

Затем ваш json установил данные в виде массива, это еще одна проблема, с которой вы столкнетесь. Поэтому, когда вы выбираете свойство, вам нужно добавить индекс, как показано ниже, с Expression: body('Parse_JSON')[0]['subject'].

* +1012 *enter image description here

Я тестирую с коротким json два свойства предмета и темы.

enter image description here

1 голос
/ 04 июня 2019

Перейдите к конструктору приложений логики на портале Azure, и вы можете специально назначить json переменным в вашем процессе потока

Grabbing the json information

Здесь ссылка на то, как это сделать

...