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

PowerShell操作嵌套JSON 输出父子节点及计算属性使用求助

问题1 输出GTIN和SERIAL两列列表

直接遍历嵌套层级,关联对应属性输出即可:

$asn.cartons.items | ForEach-Object {
    $currentGtin = $_.gtin
    $_.serials | ForEach-Object {
        [PSCustomObject]@{
            GTIN   = $currentGtin
            SERIAL = $_.serial
        }
    }
}

问题2 输出CARTON、GTIN、SERIAL三列列表

多保留一层父级的carton属性即可:

$asn.cartons | ForEach-Object {
    $currentCarton = $_.carton
    $_.items | ForEach-Object {
        $currentGtin = $_.gtin
        $_.serials | ForEach-Object {
            [PSCustomObject]@{
                CARTON = $currentCarton
                GTIN   = $currentGtin
                SERIAL = $_.serial
            }
        }
    }
}

问题3 输出拼接后的自定义格式列表

构造对象时直接对属性做字符串拼接:

$asn.cartons.items | ForEach-Object {
    $currentGtin = $_.gtin
    $_.serials | ForEach-Object {
        [PSCustomObject]@{
            "GTIN+SERIAL" = "(01)$currentGtin(21)$($_.serial)"
        }
    }
}

注意事项

你之前的代码没有拿到预期结果,是因为内层循环生成的自定义对象没有输出到管道,而是赋值给了没有被返回的$serials变量,去掉赋值操作直接输出对象即可正常拿到结果。上述所有代码输出的结果都可以直接对接Export-Csv、Format-Table等命令做后续处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:15:08