使用Windows PowerShell 5.1从json变量获取值

时间:2019-01-08 11:26:09

标签: powershell powershell-v5.1

我有这样的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仅包含长度参数,仅此而已。

1 个答案:

答案 0 :(得分:3)

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

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

可验证的完整示例

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