Как обработать пустой или необязательный столбец в json в приложении логики Azure - PullRequest
0 голосов
/ 13 июня 2019

enter image description here

пример API-адреса: https://jsonplaceholder.typicode.com/posts

enter image description here

заголовок не является обязательным полем в полученном json. Он может быть или не быть частью каждой записи.

Если это поле отсутствует в записи, @ {items ('For_each') ['title']} вызывает исключение.

Я хочу, чтобы значение myVariable было установлено как 'N / A' в этом случае. Как мне это сделать?

Ответы [ 2 ]

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

Я предполагаю, что это массив и что у вас есть заданная схема в триггере HTTP.Если схема установлена, убедитесь, что вы удалили Title как обязательное поле.Required HTTP fields

Используя эти предположения, вы можете сделать следующее с Coalesce()

Если Title сейчас отсутствует в теле HTTPзапрос Title будет равен 'N / A'

Logic App

При использовании почтальона для проверки обратите внимание, что результат обратный, так какпервый объект отправлен в мой массив.Postman

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

Потому что у вас все данные имеют заголовок, поэтому я проверяю с помощью триггера When a HTTP request is recived, чтобы получить данные json.

В этой ситуации данные могут быть только такими:

{
    "userId": 1,
    "id": 2,

    "body": "xxxxx"
  }

не так, как показано ниже:

{
    "userId": 1,
    "id": 2,
    "title":,
    "body": "xxxxxxxxx"
  }

Я тестирую первый, он показывает сообщение об ошибке: свойство title не существует. Итак, вот мое решение, после действия Set variable, добавьте действие, чтобы установить переменную, которую вы хотите, и установите запуск действия после сбоя Set variable, как показано на рисунке ниже.

enter image description here

enter image description here

После настройки, если заголовок не существует, он будет установлен как N/A, как вы хотите.

enter image description here

Надеюсь, это поможет вам, если это не то, что вы хотите, или у вас есть другие вопросы, пожалуйста, дайте мне знать.

...