访问由解析的JSON生成的对象中的值

时间:2015-07-16 22:58:55

标签: object powershell-v2.0

看看following JSON(太大了,不适合这里),我无法使用

获得价值
[System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
$ser = New-Object System.Web.Script.Serialization.JavaScriptSerializer
$jsonObj = $ser.DeserializeObject($json)

$jsonObj.servers | Where-Object {$_.name -EQ 'Tendaji'} | `
  select-object { $_.ipv4addr }

我收到了

   $_.ipv4Address
    --------------
    113.55.212.113

如何只返回113.55.212.113

1 个答案:

答案 0 :(得分:1)

看看:

$_.ipv4Address | get-member
Get-Member -InputObject $_.ipv4Address

你可能有一个数组

$_.ipv4Address[0]

要忘记你的JSON中有错误:

"name": "Aboubacar""ipv4addr": "143.179.56.126"

应该是:

"name": "Aboubacar",
"ipv4addr": "143.179.56.126"

然后

$jsonObj.servers[0].ipv4addr

给出

113.55.212.113

因此,在您的代码中,您可以使用:

($jsonObj.servers | Where-Object {$_.name -EQ 'Tendaji'}).ipv4addr