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

PowerShell中使用ForEach访问嵌套JSON对象并生成表格的问题

问题:访问嵌套JSON对象并生成表格展示任务详情

我现在搞不懂怎么访问嵌套对象里的项,想要把这些嵌套项的详情以表格形式展示出来,具体要显示"One"、"Two"、"Three"这三个任务的详情。

提供的JSON数据

{
 "ToCover":{
        "ToDo":{
            "One":{
                "ID":1,
                "Task": "Bezlio & Handheld testing",
                "Comment":"",
                "InProgress": "In Progress"
            },
            "Two":{
                "ID":2,
                "Task": "Crystal Default reports to SSRS default",
                "Comment":"Moved all",
                "InProgress": "Complete"
            },
            "Three":{
                "ID":3,
                "Task": "new system Install",
                "Comment": "Delayed",
                "InProgress": "In Progress"
        }
     }     
  }   
}

当前使用的PowerShell脚本

$test = 
foreach ($task in $json.ToCover.ToDo){
    foreach($item in $task){
        foreach($detail in $item){
            $detail
        }
    } 
}

$test

期望实现的效果

希望能直接获取三个任务的完整对象并输出为表格,类似手动指定每个任务的写法:

$table = foreach ($task in $json.ToCover.ToDo){
    $json.ToCover.ToDo.One
    $json.ToCover.ToDo.Two
    $json.ToCover.ToDo.Three
}

解决方案

你不需要多层嵌套循环,$json.ToCover.ToDo是包含任务对象的集合,直接提取其中的任务对象即可让PowerShell自动生成表格:

方法1:通过PSObject.Properties.Value获取所有任务对象

# 先将JSON转换为PowerShell对象(如果还没转换的话)
$json = Get-Content -Path "你的JSON文件路径" | ConvertFrom-Json

# 直接提取所有任务对象并输出为表格
$json.ToCover.ToDo.PSObject.Properties.Value

方法2:遍历ToDo的属性名获取对应任务

$json.ToCover.ToDo | Get-Member -MemberType NoteProperty | ForEach-Object {
    $json.ToCover.ToDo.$($_.Name)
}

运行任意一种方法,都会输出如下格式的表格:

ID Task                                  Comment   InProgress
-- ----                                  -------   ----------
 1 Bezlio & Handheld testing                        In Progress
 2 Crystal Default reports to SSRS default Moved all Complete
 3 new system Install                    Delayed   In Progress

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:29