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

PowerShell解析含对象的JSON文件:按指定名称获取变量

PowerShell解析JSON文件的两个问题解决方案

问题1:根据对象名称获取对应变量集合

首先读取JSON文件并转换成PowerShell可操作的对象:

# 读取JSON文件并转换为PowerShell对象
$testPlans = Get-Content -Path "Test.json" -Raw | ConvertFrom-Json

指定目标对象名称后,直接通过键名访问即可获取对应变量集合:

# 定义要获取的对象名称
$targetPlanName = "My Test Plan A"
# 获取该对象的所有变量
$targetPlan = $testPlans.$targetPlanName

此时$targetPlan就是包含所有变量的对象,可通过$targetPlan.VariableA查看单个值,或用$targetPlan | Get-Member -MemberType NoteProperty列出所有变量名。

问题2:以类似$(VariableA)的形式调用变量

有两种实用方法实现需求:

方法1:将变量导入当前作用域

遍历目标对象的属性,把每个属性转为当前作用域的变量:

# 遍历属性并创建对应变量
$targetPlan.PSObject.Properties | ForEach-Object {
    Set-Variable -Name $_.Name -Value $_.Value
}

之后就能直接用$VariableA、$VariableB的形式调用,示例:

Write-Host "VariableA的值: $VariableA"
Write-Host "VariableC的值: $VariableC"

方法2:直接通过对象属性插值调用

如果不想创建全局变量,可在字符串中直接通过对象属性访问,效果等价于$(VariableA):

Write-Host "VariableA的值: $($targetPlan.VariableA)"
Write-Host "VariableD的值: $($targetPlan.VariableD)"

可选:优化JSON格式(若允许修改)

原格式可用,但如果需要批量处理计划,可改成数组结构更便捷:

[
    {
        "PlanName": "My Test Plan A",
        "VariableA":"A",
        "VariableB":"B",
        "VariableC":"C",
        "VariableD":"D"
    },
    {
        "PlanName": "My Test Plan B",
        "VariableA":"E",
        "VariableB":"F",
        "VariableC":"G",
        "VariableD":"H"
    }
]

这种格式下获取目标计划的代码可改为:

$testPlans = Get-Content -Path "Test.json" -Raw | ConvertFrom-Json
$targetPlan = $testPlans | Where-Object { $_.PlanName -eq "My Test Plan A" }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:45:30