Генерация схемы Json

Я пытаюсь настроить поток Microsoft. Короче говоря, мне нужно взять данные Json, полученные с устройства, и проанализировать их, чтобы я мог сослаться на них в потоках ниже. Чтобы разобрать, мне нужно предоставить схему Джейсона Потоку. В Microsoft Flow есть возможность генерировать схему Json из образца полезной нагрузки (результаты, возвращаемые вызовом API), но она генерируется неправильно. Я надеюсь, что кто-то может мне помочь. Мне нужна правильная схема Джейсона.

Данные, возвращаемые из API:

[
  null,
  [
    {
      "user_id": 2003,
      "user_label": "Test1"
    },
    {
      "user_id": 2004,
      "user_label": "Test2"
    }
  ]
]

Схема, сгенерированная в потоке из приведенного выше примера полезной нагрузки:

{
    "type": "array",
    "items": {}
}

Затем я попытался сгенерировать схему только из данных. Казалось, что это работает, но при запуске потока я получаю ошибку проверки Json.

Пробовал генерировать только из таких данных:

{
      "user_id": 2003,
      "user_label": "Test1"
    }

Это сгенерировало такую ​​схему:

{
    "type": "object",
    "properties": {
        "user_id": {
            "type": "number"
        },
        "user_label": {
            "type": "string"
        }
    }
}

0 ответов

Итак, у вас есть 2 вещи: массив вложенных объектов и нуль.

Вам понадобится еще один синтаксический анализ JSON после первого синтаксического анализа JSON. И вы захотите отфильтровать ноль перед вторым анализом JSON.

Мне потребовалось время, чтобы понять, но я надеюсь, что это поможет.

Начните с добавления шага Parse JSON к любому шагу, на котором выводится JSON.

Теперь отфильтруйте массив, убедитесь, что вы используете "Выражение" при сравнении с null.

Добавьте второй синтаксический анализ JSON, вы заметите, что у вас не будет возможности выбрать выходной "элемент" шага массива фильтра, поэтому выберите "Анализировать JSON" - элемент на данный момент (мы изменим это, чтобы использовать выходные данные шага Filter JSON за мгновение)

Шаг должен автоматически измениться на "Применить к каждому". В Parse JSON 2 сгенерируйте схему с

[
    {
      "user_id": 2003,
      "user_label": "Test1"
    },
    {
      "user_id": 2004,
      "user_label": "Test2"
    }
  ]

Затем измените поле "Выбрать результат из предыдущих шагов" и измените его (из тела шага анализа JSON) на тело шага массива фильтров.

Наконец, добавьте действие после Parse JSON 2 и выберите одно из полей в Parse JSON 2, это автоматически изменит этот шаг на вложенный Apply для каждого

У вас должно получиться что-то вроде этого:

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