PowerShell如何将单条JSON的command字段值赋值给变量
解决方案
修改后的完整可运行代码如下:
$json = @" { "command": "restart" } "@ # 解析JSON为PowerShell自定义对象 $Response = ConvertFrom-Json -InputObject $json # 提取command字段值赋值给$Command变量 $Command = $Response.command # 输出查看取值结果(可选) Write-Output $Command # 匹配值执行对应逻辑 if ($Command -eq 'restart') { # 此处填写重启操作代码,例如重启本地系统可使用下方命令 # Restart-Computer -Force }
修改说明
- 原代码的问题是没有从解析后的JSON对象中提取
command属性,ConvertFrom-Json返回的是包含所有JSON字段的自定义对象,需要用对象.属性名的格式读取对应字段值 - 优先使用PowerShell原生的
-eq比较运算符替代Equals()方法,可避免变量为空时抛出空引用异常 - 后续如果JSON是动态获取的,只需要把
$json的赋值替换为实际拿到的JSON字符串即可,后续解析、取值、判断逻辑无需调整
内容的提问来源于stack exchange,提问作者Jonathan M
相关产品推荐
相关产品推荐

