Приложению логики не удается найти значение из действия Parse JSON

У меня есть логическое приложение, которое запускается HTTP-вызовом. Вместе с этим вызовом поставляется набор заголовков, большинство из которых используется в различных операторах switch. Используя действие Parse JSON, которое я передаю заголовки из запроса, они успешно анализируются (изображение 1), но для одного из заголовков (searchType) оператор switch по какой-то причине оценивается как нулевой (изображение 2). Я не могу для жизни мне понять, почему.

Я попытался переделать приложение логики с нуля, полностью скопировать приложение в другую среду и попытался использовать выражение для доступа к проанализированному значению вместо динамического содержимого. Когда я пробую выражение, мне говорят, что это недопустимое выражение (изображение 3). Это выражение является прямой копией того, что используется в представлении кода.

Любые предложения относительно того, что я могу сделать, чтобы решить эту проблему?

Успешный разбор заголовков

Приложению логики не удается найти значение из действия Parse JSON

проанализированный заголовок оценивается как null

Приложению логики не удается найти значение из действия Parse JSON

выражение неверно

Приложению логики не удается найти значение из действия Parse JSON

JSON для репликации приложения логики

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "HeadersJson": {
                "inputs": {
                    "content": "@triggerOutputs()['headers']",
                    "schema": {
                        "properties": {
                            "APICallFor": {
                                "type": "string"
                            },
                            "Accept-Encoding": {
                                "type": "string"
                            },
                            "Accept-Language": {
                                "type": "string"
                            },
                            "Connection": {
                                "type": "string"
                            },
                            "Content-Length": {
                                "type": "string"
                            },
                            "Content-Type": {
                                "type": "string"
                            },
                            "Host": {
                                "type": "string"
                            },
                            "User-Agent": {
                                "type": "string"
                            },
                            "searchType": {
                                "type": "string"
                            },
                            "x-ms-action-tracking-id": {
                                "type": "string"
                            },
                            "x-ms-activity-vector": {
                                "type": "string"
                            },
                            "x-ms-client-request-id": {
                                "type": "string"
                            },
                            "x-ms-client-tracking-id": {
                                "type": "string"
                            },
                            "x-ms-correlation-id": {
                                "type": "string"
                            },
                            "x-ms-execution-location": {
                                "type": "string"
                            },
                            "x-ms-tracking-id": {
                                "type": "string"
                            },
                            "x-ms-workflow-id": {
                                "type": "string"
                            },
                            "x-ms-workflow-name": {
                                "type": "string"
                            },
                            "x-ms-workflow-operation-name": {
                                "type": "string"
                            },
                            "x-ms-workflow-resourcegroup-name": {
                                "type": "string"
                            },
                            "x-ms-workflow-run-id": {
                                "type": "string"
                            },
                            "x-ms-workflow-run-tracking-id": {
                                "type": "string"
                            },
                            "x-ms-workflow-subscription-id": {
                                "type": "string"
                            },
                            "x-ms-workflow-system-id": {
                                "type": "string"
                            },
                            "x-ms-workflow-version": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                },
                "runAfter": {},
                "type": "ParseJson"
            },
            "Switch": {
                "cases": {
                    "Get_Departments": {
                        "actions": {
                            "Switch_3": {
                                "cases": {
                                    "Case": {
                                        "actions": {
                                            "Response_5": {
                                                "inputs": {
                                                    "body": "got to individual",
                                                    "statusCode": 200
                                                },
                                                "kind": "Http",
                                                "runAfter": {},
                                                "type": "Response"
                                            }
                                        },
                                        "case": "individual"
                                    },
                                    "Case_2": {
                                        "actions": {
                                            "Response": {
                                                "inputs": {
                                                    "body": "got to bulk",
                                                    "statusCode": 200
                                                },
                                                "kind": "Http",
                                                "runAfter": {},
                                                "type": "Response"
                                            }
                                        },
                                        "case": "bulk"
                                    }
                                },
                                "default": {
                                    "actions": {
                                        "Response_3": {
                                            "inputs": {
                                                "body": "the searchType parameter is not valid",
                                                "statusCode": 200
                                            },
                                            "kind": "Http",
                                            "runAfter": {},
                                            "type": "Response"
                                        }
                                    }
                                },
                                "expression": "@body('HeadersJson')?['serachType']",
                                "runAfter": {},
                                "type": "Switch"
                            }
                        },
                        "case": "departments"
                    }
                },
                "default": {
                    "actions": {
                        "Response_2": {
                            "inputs": {
                                "body": "the APICallFor header is not valid",
                                "statusCode": 500
                            },
                            "kind": "Http",
                            "runAfter": {},
                            "type": "Response"
                        }
                    }
                },
                "expression": "@body('HeadersJson')?['APICallFor']",
                "runAfter": {
                    "HeadersJson": [
                        "Succeeded"
                    ]
                },
                "type": "Switch"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "manual": {
                "inputs": {
                    "schema": {
                        "properties": {
                            "searchString": {
                                "type": "string"
                            },
                            "searchType": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    }
                },
                "kind": "Http",
                "operationOptions": "EnableSchemaValidation",
                "type": "Request"
            }
        }
    }
}
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
1 883
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваше выражение недействительно, потому что @ в вашем выражении, выражение @ используется в представлении кода, должно быть просто body('HeadersJson')?['searchType'].

Что касается вашего searchType, это нуль, вероятно, схема ParseJson неверна, поэтому убедитесь, что правильная схема как док путь.

И если вы хотите использовать данные заголовка, вам не нужно анализировать заголовок в json, потому что данные уже в формате json, однако, если вы передаете данные с телом запроса, вам нужно будет их проанализировать. Также я протестировал его, он будет работать с triggerOutputs()['headers']['searchType'], поэтому просто вставьте его в выражение, если вы используете представление кода, это будет @triggerOutputs()['headers']['searchType'].

Другие вопросы по теме