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

PowerShell中如何用数组存储的键路径字符串提取嵌套JSON对应值

解决方案

你之前的代码存在两个核心问题:

  1. 遍历哈希表得到的$_是DictionaryEntry类型,需要取它的Key属性才能拿到root.branch.setting1这类路径字符串
  2. PowerShell不支持直接将带点的拼接路径作为属性链访问对象,需要拆分路径逐层取值

可直接运行的实现代码

$AccountService.GetEnumerator() | ForEach-Object {
    # 拆分路径为层级数组
    $segments = $_.Key -split '\.'
    # 逐层遍历取值
    $targetValue = $json
    foreach ($seg in $segments) {
        $targetValue = $targetValue.$seg
    }
    # 输出符合要求的格式
    [PSCustomObject]@{
        Val = $targetValue
    }
}

运行上述代码就会输出你预期的Val列,值分别对应Val1、Val2、Val3。

简化写法(可选)

如果你习惯用Select-Object的计算属性语法,可以用下面的简写版本:

$AccountService.Keys | ForEach-Object {
    $json | Select-Object @{
        Name = 'Val'
        Expression = { ($_ -split '\.').ForEach({$v = $json}, {$v = $v.$_}); $v }
    }
}

内容的提问来源于stack exchange,提问作者Rasimus.84

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:15:06