You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps:从多SharePoint列表创建嵌套集合并生成嵌套JSON

在Power Apps中创建嵌套集合并转换为指定JSON格式

前提条件

已导入3个SharePoint列表对应的集合:

  • colService:含唯一标识serviceID,以及Service、ServiceOwner等字段
  • colServer:含关联字段serviceID、唯一标识serverID,以及ServerName、OS、CPU、RAM等字段
  • colDisk:含关联字段serviceID、serverID,以及MP、Size等字段

步骤1:创建包含磁盘嵌套的服务器集合

先为每个服务器匹配对应的磁盘列表,生成带嵌套磁盘的服务器集合:

ClearCollect(
    colNestedServers,
    AddColumns(
        // 仅保留需要的服务器字段(按需调整)
        ShowColumns(colServer, "serviceID", "serverID", "ServerName", "OS", "CPU", "RAM"),
        "Disks",
        // 过滤当前服务器对应的磁盘,仅保留需要的字段
        ShowColumns(
            Filter(colDisk, serverID = colServer[@serverID] && serviceID = colServer[@serviceID]),
            "MP", "Size"
        )
    )
)

步骤2:创建最终的服务嵌套集合

将服务与对应的嵌套服务器列表关联,生成目标层级的集合:

ClearCollect(
    colFinalNestedData,
    AddColumns(
        // 仅保留需要的服务字段(按需调整)
        ShowColumns(colService, "serviceID", "Service", "ServiceOwner"),
        "Servers",
        // 过滤当前服务对应的嵌套服务器集合
        Filter(colNestedServers, serviceID = colService[@serviceID])
    )
)

步骤3:转换为指定格式的JSON

使用JSON函数将嵌套集合转换为格式化的JSON字符串:

Set(
    jsonOutput,
    JSON(colFinalNestedData, JSONFormat.IgnoreBinaryData & JSONFormat.IndentFour)
)
  • JSONFormat.IgnoreBinaryData:避免集合中存在二进制数据导致转换失败
  • JSONFormat.IndentFour:生成带缩进的美观JSON格式,与示例结构一致

字段名适配提示

如果原集合的字段名与目标JSON的键名不匹配(比如原服务字段是ServiceName而非Service),需要在AddColumns中重命名字段,示例:

AddColumns(
    colService,
    "Service", ServiceName,  // 将原字段ServiceName重命名为目标键名Service
    "ServiceOwner", OwnerEmail,
    "Servers", Filter(colNestedServers, serviceID = colService[@serviceID])
)

内容的提问来源于stack exchange,提问作者toc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 19:45:17