首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PowerAutomate JSON -将对象数组转换为字符串

PowerAutomate JSON -将对象数组转换为字符串
EN

Stack Overflow用户
提问于 2022-06-17 01:19:28
回答 2查看 3.1K关注 0票数 1

因此,我有一个JSON对象,它包含一个用户数组,这些用户是一个组的成员。我想将所有这些用户压缩成一个很好的字符串,并将该字符串放入sharepoint列表中。

我想我会用写作,但老实说,我从来没有用过,我也不知道怎么用。实际上,我们的希望是将这一点转化为:

代码语言:javascript
运行
复制
{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
  "value": [
    {
      "@odata.type": "#microsoft.graph.user",
      "id": "e3eec502-97a5-47cc-ae81-82c34c4e9b4a",
      "businessPhones": [],
      "displayName": "User one",
      "givenName": "User1",
      "jobTitle": null,
      "mail": "email@email.com",
      "mobilePhone": null,
      "officeLocation": null,
      "preferredLanguage": null,
      "surname": "one",
      "userPrincipalName": "user.one@email.com"
    },
    {
      "@odata.type": "#microsoft.graph.user",
      "id": "ab02d0c4-5770-4a54-95ec-200fb55dfd27",
      "businessPhones": [],
      "displayName": "User two",
      "givenName": "User2",
      "jobTitle": null,
      "mail": "email@email.com",
      "mobilePhone": null,
      "officeLocation": null,
      "preferredLanguage": null,
      "surname": "two",
      "userPrincipalName": "User.two@email.com"
    },
    {
      "@odata.type": "#microsoft.graph.user",
      "id": "15610147-ca81-47c3-bd34-ad046ff9ac46",
      "businessPhones": [],
      "displayName": "User three",
      "givenName": "User3",
      "jobTitle": null,
      "mail": null,
      "mobilePhone": null,
      "officeLocation": null,
      "preferredLanguage": null,
      "surname": "three",
      "userPrincipalName": "user.three@email.com"
    }
  ]
}

到这个

User one, User two, User three

有什么想法和资源我可以查一下吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-17 01:36:57

我做了以下..。

将JSON (减去@符号,因为PA不喜欢它们)加载到变量中,这样我就可以遍历它。

然后,我创建了另外两个变量,一个用来保存正在处理的连接字符串,另一个用来保存最终结果。

然后,我在值数组上循环,并取出displayName属性,并将其附加到Concatenated String变量(带有前导逗号)。

表达式1= variables('Data')['value']

表达式2= item()['displayName']

最后一步是删除带表达式的逗号。

表达式= substring(variables('Concatenated String'), 1)

结果

票数 0
EN

Stack Overflow用户

发布于 2022-09-01 00:29:59

这可以使用解析JSON选择加入操作来实现。

完成的流程将由一个按钮触发,并包含以下操作:

  1. 初始化变量--使用要操作的数据初始化变量
  2. 解析JSON -为数据分配模式,使我们能够更容易地访问数组
  3. 选择-将对象数组转换为字符串数组。
  4. 连接-连接字符串数组中的所有项。

看起来是这样的:

每项行动的执行情况如下:

1.初始化变量

首先,使用以下值添加初始化变量操作:

  • 名称:data
  • 值:要处理的JSON (正如在回答中所指出的,应该删除"@“字符)

2.解析JSON

然后,您需要添加一个Parse操作,以告诉power自动化初始化变量操作中分配的数据的模式。这将使我们能够在下一步更容易地引用数组。这些值应设置为:

  • 内容:数据变量
  • 模式:
代码语言:javascript
运行
复制
{
    "type": "object",
    "properties": {
        "odata.context": {
            "type": "string"
        },
        "value": {
            "type": "array",
            "items": {
                "type": "object"
            }
        }
    }
}

3.选择

现在添加一个选择操作。此操作通常用于转换一个对象数组。但是,我们可以使用它返回字符串数组。为此,请单击开关映射到文本模式按钮。

尽管可以通过使用表达式item()['displayName']实现所需的结果,但是可以通过组合对象内的值来构造更复杂的字符串。例如,我们可以将displayNamemail属性组合起来,方法是将映射值设置为"@{item()['displayName']} - @{item()['mail']}"

4.加入

最后,使用联接操作将Select生成的字符串数组与特定分隔符(在您的示例中是逗号和空格字符, )连接起来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72653398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档