3

我正在尝试设置 Microsoft 流程。简而言之,我需要获取从设备检索到的 JSON 数据,并对其进行解析,以便我可以在下面的流程中引用它。为了解析,我需要向 Flow 提供 JSON Schema。Microsoft Flow 可以选择从示例有效负载(从 API 调用返回的结果)生成它,但它没有正确生成它。我希望有人能帮助我。我需要正确的 JSON 架构。

API 返回的数据:

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

通过上述示例有效载荷在 Flow 中生成的方案:

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

然后我尝试仅从数据生成模式。这似乎可行,但是当 Flow 运行时,我收到 Json 验证错误。

尝试从这样的数据生成:

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

这产生了这样的方案:

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

4

1 回答 1

0

所以你有两件事发生,嵌套对象数组和空值。

在第一个 Parse JSON 之后,您将需要另一个 Parse JSON。并且您需要在第二个 Parse JSON 之前过滤掉 null。

我花了一段时间才弄清楚,但我希望这会有所帮助。

首先将 Parse JSON 步骤添加到输出 JSON 的任何步骤。 先解析json

现在,过滤数组,确保在与 比较时使用“表达式” null在此处输入图像描述

添加第二个 Parse JSON,您会注意到您将无法选择过滤器数组步骤的输出“Item”,因此现在选择“Parse JSON” - Item(我们将更改此选项以使用输出稍后过滤 JSON 步骤) 在此处输入图像描述

该步骤应自动更改为“应用于每个”。在 Parse JSON 2 中,使用

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

然后,修改“从先前步骤字段中选择输出”并将其(从 Parse JSON 步骤的正文)更改为过滤器数组步骤的正文

在此处输入图像描述

最后,在 Parse JSON 2 之后添加一个操作并选择 Parse JSON 2 中的一个字段,这将自动将该步骤更改为嵌套的 Apply to each

在此处输入图像描述

你应该得到这样的结果: 在此处输入图像描述

于 2020-05-30T13:39:55.770 回答