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

xa9qqrwz  于 2023-05-02  发布在  其他
关注(0)|答案(1)|浏览(596)

我正在处理从基于this reference的SharePoint库中的Excel文件中删除版本的流程。
我遇到了一个问题,Apply to Each步骤不会将Parse JSON步骤的输出作为数组读取,尽管这些输出看起来很好。有谁知道可能出了什么问题吗?

编辑器

包括这个只是为了给予你对引导步骤有个概念。出于测试目的,我将其过滤为一个Excel文件,尽管过滤器将是一个永久性的固定装置,只是对检索的项目限制较少。

此处的表达式:

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

如果需要,我可以在中编辑模式,但是它太长了,而且我确实计划包括下面运行的流的输出,所以我现在打算跳过它。我已经尝试了链接引用中的模式,并且还从SendHTTP步骤输出的示例中生成,它没有改变任何东西。

我插入这个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"
      }
    ]
  }
}

以下是解析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"
      }
    ]
  }
}

compose步骤的结果显示它也没有看到“results”数组,但我不知道为什么。
最后,失败的Apply to each:

j0pj023g

j0pj023g1#

看起来你已经在表达式中添加了两次名为properties的属性,我在Parse Json输出中没有看到。
试试下面的方法:

body('Parse_Json')?['d']?['results']

相关问题