使用Power Automate将JSON对象转换为具有属性名称的数组

smdnsysy  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(302)

我正尝试使用Power Automate流从JSON在SharePoint列表中创建列。
我设法创建了一个列与“发送HTTP请求到SharePoint”手动使用:{ "__metadata": { "type": "SP.Field" },"FieldTypeKind": 9,"Title":"TestColumnInt"}
然而,我想自动化这个过程,所以我想根据JSON所描述的所需列的数量来循环整个过程。
对于第一步,我无法设法提取数组中的属性名称。例如,对于此输入(输入来自PARSE JSON流元素):

[
    {
        "date": "08/31/2020",
        "hour": 1,
        "production": 1,
        "machine": "Z22",
        "completeDate": "08/31/2020 01:00"
    },
    {
        "date": "08/31/2020",
        "hour": 4,
        "production": 1,
        "machine": "Z44",
        "completeDate": "08/31/2020 04:00"
    }
]

我想要输出:

[ "date","hour","production", "machine","completeDate"]

不幸的是,我似乎不能理解Object变量是如何使用的。每次我使用一个函数,比如split,我都会收到一个类似于“String or Array expected not Object”的错误。
功能键似乎也不兼容。
提前感谢您的帮助!

yshpjwxd

yshpjwxd1#

您可以使用高级数据操作连接器和Json Properties to Name Value Pair Array操作将数组中的第一项转换为键/值结构,然后可以提取属性名称。

***注意:*每个项目都需要平衡(即具有相同的字段集),您需要做更多的工作来确定这一点。该连接器中还有其他操作可以帮助您实现这一点。

Initialize JSON步骤仅包含JSON,下一步将把结构转换为JSON对象,使您能够动态提取字段名称。
这是将返回的JSON。

[
  {
    "propertyName": "completeDate",
    "propertyType": "String",
    "propertyValue": "08/31/2020 01:00"
  },
  {
    "propertyName": "date",
    "propertyType": "String",
    "propertyValue": "08/31/2020"
  },
  {
    "propertyName": "hour",
    "propertyType": "Integer",
    "propertyValue": 1
  },
  {
    "propertyName": "machine",
    "propertyType": "String",
    "propertyValue": "Z22"
  },
  {
    "propertyName": "production",
    "propertyType": "Integer",
    "propertyValue": 1
  }
]

然后,您可以循环访问该数组,提取每个属性名并创建数组,如您在问题中所述。

相关问题