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

如何用PowerShell将嵌套JSON文件转换为指定格式的CSV?

解决Azure DevOps发布JSON转指定列头CSV的问题

你的原命令问题出在多余的ConvertFrom-Csv步骤——从JSON解析出来的是PowerShell对象数组,不是CSV格式的文本,用这个命令会把对象错误当成CSV行处理,导致列名混乱。另外Out-File不如Export-Csv适合生成标准CSV文件。

直接用下面的步骤修正:

  1. 先确认JSON结构里的属性名
    先运行以下命令查看嵌套value数组里的对象属性,方便你确定要提取的列:

    (Get-Content -Path "C:\Test.json" | ConvertFrom-Json).value[0] | Get-Member -MemberType NoteProperty
    
  2. 提取指定列并导出CSV
    假设你需要的列头是ReleaseId, ReleaseName, CreatedDate, Creator, Status,其中Creator是嵌套在createdBy.displayName里的属性,用计算属性提取:

    # 解析JSON并展开value数组
    $releaseData = (Get-Content -Path "C:\Test.json" | ConvertFrom-Json).value
    
    # 选择指定列(含嵌套属性)并导出CSV
    $releaseData | Select-Object -Property `
        ReleaseId,
        ReleaseName,
        @{Name='Creator'; Expression={$_.createdBy.displayName}},
        CreatedDate,
        Status |
        Export-Csv -Path "C:\Test.csv" -NoTypeInformation -Encoding UTF8
    
  3. 关键参数说明

    • -NoTypeInformation:去掉CSV文件开头的PowerShell类型注释,让CSV更标准
    • -Encoding UTF8:确保导出的CSV支持中文等非ASCII字符,避免乱码

如果你的嵌套属性结构不同,只需要调整计算属性的Expression部分即可,比如$_.environment.name这种嵌套路径都能这么处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:45:33