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

求助:如何基于员工ID合并多份JSON员工数据文件为单份完整文件

解决PowerShell合并多份员工JSON文件的问题

核心思路

通过员工id字段分组,将不同文件中同一员工的属性合并到单个对象中,最终输出符合要求的JSON结构。

完整PowerShell脚本

# 1. 指定要合并的JSON文件路径(支持通配符或手动指定文件名)
$jsonFiles = Get-ChildItem -Path "C:\Your\Json\Files\Directory" -Filter "*.json"

# 2. 读取所有文件内容,提取员工对象数据
$allEmployees = @()
foreach ($file in $jsonFiles) {
    $jsonContent = Get-Content -Path $file.FullName -Raw | ConvertFrom-Json
    $allEmployees += $jsonContent.value
}

# 3. 按id分组,合并同一员工的所有属性
$mergedEmployees = $allEmployees | Group-Object -Property id | ForEach-Object {
    $mergedObj = [PSCustomObject]@{}
    # 遍历组内每个对象,合并属性
    foreach ($emp in $_.Group) {
        foreach ($prop in $emp.PSObject.Properties) {
            $mergedObj | Add-Member -MemberType NoteProperty -Name $prop.Name -Value $prop.Value -Force
        }
    }
    $mergedObj
}

# 4. 包装成目标JSON结构并输出
$result = [PSCustomObject]@{
    value = $mergedEmployees
}
$result | ConvertTo-Json -Depth 10 | Out-File -Path "C:\Your\Output\merged_employees.json" -Encoding utf8

关键步骤说明

  • 文件读取:用Get-ChildItem批量获取目标JSON文件,若知道具体文件名,可直接写为$jsonFiles = "file1.json", "file2.json", "file3.json"
  • 数据汇总:逐个解析JSON文件,提取value数组内的员工对象,统一存入数组
  • 属性合并:按id分组后,遍历每组内的对象,将所有属性合并到新对象中(-Force参数确保属性重复时自动覆盖,适配无重复属性的场景)
  • 输出结果:将合并后的员工数组包装为要求的JSON结构,指定-Depth 10避免嵌套层级不足报错,最后写入目标文件

注意事项

  • 确保所有JSON文件格式合法(示例中末尾多余逗号需删除,否则ConvertFrom-Json会报错)
  • 替换脚本中的文件路径为实际路径
  • 若员工id存在大小写差异,可修改分组规则为Group-Object -Property { $_.id.ToLower() }统一匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 17:34:53