首页 > 解决方案 > 使用windows powershell 5.1从json变量中获取值

问题描述

我有这样的 JSON

[  
   {  
      "Param1":true,
      "Param2":0,
      "Param3":"OK"
      ...
      ...
   }
]

如何使用 powershell 5.1 获取 Param2 值?现在,我试图获取属性名称,但只获取长度

$jsondeconverted = $jsonOrig | ConvertFrom-Json
$jsonOrig .PsObject.Properties |
     Select-Object -ExpandProperty Name |
     ForEach-Object {
        Write-Host "Key : " $_
        Write-Host "Value : " $thisJSON."$_"
     }

编辑 这就是我得到我的json的方式

$jsonvar = '['+$jsonvar+']'
$convertedJson =  $jsonvar | ConvertTo-Json -Depth 10
$deconvertedJson = $convertedJson | ConvertFrom-Json

$deconvertedJson 仅包含长度参数,仅此而已。

标签: powershellpowershell-v5.1

解决方案


您需要查看对象 ( $jsondeconverted) 而不是字符串 ( $jsonOrig)

根据您的 json 结构,您可以通过以下方式访问 param2$jsondeconverted[0].Param2

可验证的完整示例

$jsonorig = '[{"Param1":true,"Param2":0,"Param3":"OK"}]'
$jsondeconverted = $jsonorig | ConvertFrom-Json
$jsondeconverted[0].param2

推荐阅读