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

PowerShell读取JSON文件多值并按索引对应输出的方法

解决方案

你需要通过循环按索引对齐三个数组的元素,才能得到预期输出。ConvertFrom-Json解析生成的对象中,TestEvent、Folder、NEL是三个互相独立的数组,直接输出属性会按属性顺序依次打印所有数组元素,无法自动按索引分组。

1. 按索引分组输出

通过for循环遍历索引位,每次取三个数组对应位置的元素输出,组间加空行分隔即可:

# 读取JSON文件,-Raw参数一次性读取完整文本避免解析异常
$json = Get-Content "C:\Test.json" -Raw | ConvertFrom-Json
$count = $json.TestEvent.Length
for ($i = 0; $i -lt $count; $i++) {
    $json.TestEvent[$i]
    $json.Folder[$i]
    $json.NEL[$i]
    if ($i -lt $count - 1) { Write-Output "" }
}

执行后输出效果和你给出的分组示例完全一致。

2. 带表头的表格输出

将同索引的三个元素组装为自定义对象,再通过Format-Table自动排版为对齐的表格:

$json = Get-Content "C:\Test.json" -Raw | ConvertFrom-Json
$count = $json.TestEvent.Length
$result = for ($i = 0; $i -lt $count; $i++) {
    [PSCustomObject]@{
        TestEvent = $json.TestEvent[$i].ToUpper() # 匹配示例中的全大写格式
        Folder    = $json.Folder[$i]
        NEL       = $json.NEL[$i]
    }
}
# AutoSize参数自动调整列宽适配内容
$result | Format-Table -AutoSize

原代码问题说明

原代码重复执行了两次JSON解析属于冗余操作,且没有做索引对齐逻辑,因此输出是按属性顺序排列的所有数组元素,不符合分组/表格的输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:48:31