为什么我的 Power Automate Parse JSON 操作输出读取为 Null 而不是数组?

问题描述 投票:0回答:1

我正在研究一个流程,根据this reference.

从我的SharePoint库中的excel文件中删除版本

我遇到了一个问题,即 Apply to Each 步骤不会将 Parse JSON 步骤的输出读取为数组,尽管这些输出 look 很好。有谁知道可能出了什么问题?

编辑

包括这个只是为了让您了解引导步骤。为了测试目的,我将它过滤成一个 Excel 文件,尽管过滤器将是一个永久性的固定装置,只是对检索到的项目的限制更少。

这里的表达方式:

URI: _api/web/GetFolderByServerRelativeUrl('{PATH}')/Files('{FilenameWithExtension}')/Versions
Path: @{items('Get_versions_internal')?['{Path}']}
Filename: @{items('Get_versions_internal')?['{FilenameWithExtension}']}

如果需要,我可以编辑模式,但它太长了,我确实计划包括下面流程运行的输出,所以我现在要跳过它。我已经尝试了链接参考中的架构,还从发送 HTTP 步骤输出的示例中生成了它,但它没有任何改变。

我插入了这个 Compose 步骤来测试下一步中的位。表情:

@{body('Parse_JSON')?['properties']?['d']?['properties']?['results']}
@{items('Get_versions_internal')?['{Path}']}
@{items('Get_versions_internal')?['{FilenameWithExtension}']}
@{body('Parse_JSON')?['properties']?['d']?['properties']?['results']?['items']?['properties']?['ID']}

这是流程运行时给我带来麻烦的那个。 (我将在下面展示。)表达式:

@{body('Parse_JSON')?['properties']?['d']?['properties']?['results']}

Path: @{items('Get_versions_internal')?['{Path}']}
Filename: @{items('Get_versions_internal')?['{FilenameWithExtension}']}
ID: items('Clear_versions_internal')?['items']?['properties']?['ID']

流动运行

这个运行良好。

URI: _api/web/GetFolderByServerRelativeUrl('Internal/CT/zArchive/Older/')/Files('VR Sign-in Sheet.xlsx')/Versions

身体:

{
  "d": {
    "results": [
      {
        "__metadata": {
          "id": "https://SHAREPOINT_URL/_api/SP.FileVersion577e4298-b42d-4db0-8780-a484d911db2f",
          "uri": "https://SHAREPOINT_URL/_api/SP.FileVersion577e4298-b42d-4db0-8780-a484d911db2f",
          "type": "SP.FileVersion"
        },
        "CreatedBy": {
          "__deferred": {
            "uri": "https://SHAREPOINT_URL/_api/SP.FileVersion577e4298-b42d-4db0-8780-a484d911db2f/CreatedBy"
          }
        },
        "CheckInComment": "",
        "Created": "2023-04-12T00:12:39Z",
        "ID": 512,
        "IsCurrentVersion": false,
        "Length": "20696",
        "Size": 20696,
        "Url": "_vti_history/512/Internal/CT/zArchive/Older/VR Sign-in Sheet.xlsx",
        "VersionLabel": "1.0"
      }
    ]
  }
}

这里是 Parse JSON 输出:

{
  "d": {
    "results": [
      {
        "__metadata": {
          "id": "https://SHAREPOINT_URL/_api/SP.FileVersion13655235-0e65-421f-be0c-c3bdd562c0f3",
          "uri": "https://SHAREPOINT_URL/_api/SP.FileVersion13655235-0e65-421f-be0c-c3bdd562c0f3",
          "type": "SP.FileVersion"
        },
        "CreatedBy": {
          "__deferred": {
            "uri": "https://SHAREPOINT_URL/_api/SP.FileVersion13655235-0e65-421f-be0c-c3bdd562c0f3/CreatedBy"
          }
        },
        "CheckInComment": "",
        "Created": "2023-04-12T00:12:39Z",
        "ID": 512,
        "IsCurrentVersion": false,
        "Length": "20696",
        "Size": 20696,
        "Url": "_vti_history/512/Internal/CT/zArchive/Older/VR Sign-in Sheet.xlsx",
        "VersionLabel": "1.0"
      }
    ]
  }
}

撰写步骤的结果显示它也没有看到“结果”数组,但我不确定为什么。

最后,失败的Apply to each:

json httprequest power-automate
1个回答
0
投票

看起来你已经在你的表达式中添加了一个名为 properties 的属性两次,我在你的 Parse Json 输出中没有看到它。

试试下面的方法:

body('Parse_Json')?['d']?['results']
© www.soinside.com 2019 - 2024. All rights reserved.